From e1ddc0e2cdfd3ed5089e55b7c1c20d84bc491381 Mon Sep 17 00:00:00 2001 From: Shixuan Fan Date: Mon, 20 Apr 2020 18:00:03 -0700 Subject: [PATCH 001/129] Fix writing tables with preferred ordering using temp path When SORTED_WRITE_TO_TEMP_PATH_ENABLED is true, we would require a temporary path for sorted writes. --- .../facebook/presto/hive/HiveMetadata.java | 14 +++++++---- .../hive/TestHiveIntegrationSmokeTest.java | 23 ++++++++++++++++--- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index a3c832fd37003..c8e85a010a1eb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -819,7 +819,7 @@ public void createTable(ConnectorSession session, ConnectorTableMetadata tableMe } else { tableType = MANAGED_TABLE; - LocationHandle locationHandle = locationService.forNewTable(metastore, session, schemaName, tableName, isTempPathRequired(session, bucketProperty)); + LocationHandle locationHandle = locationService.forNewTable(metastore, session, schemaName, tableName, isTempPathRequired(session, bucketProperty, preferredOrderingColumns)); targetPath = locationService.getQueryWriteInfo(locationHandle).getTargetPath(); } @@ -1273,7 +1273,7 @@ public HiveOutputTableHandle beginCreateTable(ConnectorSession session, Connecto .collect(toList()); checkPartitionTypesSupported(partitionColumns); - LocationHandle locationHandle = locationService.forNewTable(metastore, session, schemaName, tableName, isTempPathRequired(session, bucketProperty)); + LocationHandle locationHandle = locationService.forNewTable(metastore, session, schemaName, tableName, isTempPathRequired(session, bucketProperty, preferredOrderingColumns)); HiveOutputTableHandle result = new HiveOutputTableHandle( schemaName, tableName, @@ -1512,7 +1512,10 @@ public HiveInsertTableHandle beginInsert(ConnectorSession session, ConnectorTabl HiveStorageFormat tableStorageFormat = extractHiveStorageFormat(table.get()); LocationHandle locationHandle; boolean isTemporaryTable = table.get().getTableType().equals(TEMPORARY_TABLE); - boolean tempPathRequired = isTempPathRequired(session, table.map(Table::getStorage).flatMap(Storage::getBucketProperty)); + boolean tempPathRequired = isTempPathRequired( + session, + table.map(Table::getStorage).flatMap(Storage::getBucketProperty), + decodePreferredOrderingColumnsFromStorage(table.get().getStorage())); if (isTemporaryTable) { locationHandle = locationService.forTemporaryTable(metastore, session, table.get(), tempPathRequired); } @@ -1656,9 +1659,10 @@ else if (partitionUpdate.getUpdateMode() == NEW || partitionUpdate.getUpdateMode .collect(Collectors.toList()))); } - private static boolean isTempPathRequired(ConnectorSession session, Optional bucketProperty) + private static boolean isTempPathRequired(ConnectorSession session, Optional bucketProperty, List preferredOrderingColumns) { - return isSortedWriteToTempPathEnabled(session) && bucketProperty.map(property -> !property.getSortedBy().isEmpty()).orElse(false); + boolean hasSortedWrite = bucketProperty.map(property -> !property.getSortedBy().isEmpty()).orElse(false) || !preferredOrderingColumns.isEmpty(); + return isSortedWriteToTempPathEnabled(session) && hasSortedWrite; } private List getTargetFileNames(List fileWriteInfos) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index d5e16e7bbfc45..c0a93311d5674 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -2254,50 +2254,67 @@ private void testWriteSortedTable(Session session) @Test public void testWritePreferredOrderingTable() + { + testWritePreferredOrderingTable(getSession()); + testWritePreferredOrderingTable(Session.builder(getSession()) + .setCatalogSessionProperty(catalog, SORTED_WRITE_TO_TEMP_PATH_ENABLED, "true") + .setCatalogSessionProperty(catalog, SORTED_WRITE_TEMP_PATH_SUBDIRECTORY_COUNT, "10") + .build()); + } + + public void testWritePreferredOrderingTable(Session session) { try { // create table assertUpdate( + session, "CREATE TABLE create_partitioned_ordering_table (orderkey, custkey, totalprice, orderdate, orderpriority, clerk, shippriority, comment, orderstatus)\n" + "WITH (partitioned_by = ARRAY['orderstatus'], preferred_ordering_columns = ARRAY['orderkey']) AS\n" + "SELECT orderkey, custkey, totalprice, orderdate, orderpriority, clerk, shippriority, comment, orderstatus FROM tpch.sf1.orders", (long) computeActual("SELECT count(*) FROM tpch.sf1.orders").getOnlyValue()); assertQuery( + session, "SELECT count(*) FROM create_partitioned_ordering_table", "SELECT count(*) * 100 FROM orders"); assertUpdate( + session, "CREATE TABLE create_unpartitioned_ordering_table (orderkey, custkey, totalprice, orderdate, orderpriority, clerk, shippriority, comment, orderstatus)\n" + "WITH (preferred_ordering_columns = ARRAY['orderkey']) AS\n" + "SELECT orderkey, custkey, totalprice, orderdate, orderpriority, clerk, shippriority, comment, orderstatus FROM tpch.sf1.orders", (long) computeActual("SELECT count(*) FROM tpch.sf1.orders").getOnlyValue()); assertQuery( + session, "SELECT count(*) FROM create_unpartitioned_ordering_table", "SELECT count(*) * 100 FROM orders"); // insert assertUpdate( + session, "CREATE TABLE insert_partitioned_ordering_table (LIKE create_partitioned_ordering_table) " + "WITH (partitioned_by = ARRAY['orderstatus'], preferred_ordering_columns = ARRAY['orderkey'])"); assertUpdate( + session, "INSERT INTO insert_partitioned_ordering_table\n" + "SELECT orderkey, custkey, totalprice, orderdate, orderpriority, clerk, shippriority, comment, orderstatus FROM tpch.sf1.orders", (long) computeActual("SELECT count(*) FROM tpch.sf1.orders").getOnlyValue()); assertQuery( + session, "SELECT count(*) FROM insert_partitioned_ordering_table", "SELECT count(*) * 100 FROM orders"); // invalid assertQueryFails( + session, "CREATE TABLE invalid_bucketed_ordering_table (LIKE create_partitioned_ordering_table) " + "WITH (preferred_ordering_columns = ARRAY['orderkey'], bucketed_by = ARRAY['totalprice'], bucket_count = 13)", ".*preferred_ordering_columns must not be specified when bucketed_by is specified.*"); } finally { - assertUpdate("DROP TABLE IF EXISTS create_partitioned_ordering_table"); - assertUpdate("DROP TABLE IF EXISTS create_unpartitioned_ordering_table"); - assertUpdate("DROP TABLE IF EXISTS insert_partitioned_ordering_table"); + assertUpdate(session, "DROP TABLE IF EXISTS create_partitioned_ordering_table"); + assertUpdate(session, "DROP TABLE IF EXISTS create_unpartitioned_ordering_table"); + assertUpdate(session, "DROP TABLE IF EXISTS insert_partitioned_ordering_table"); } } From 5368a56d78ed72ad5e1ccf2d025083ec98f5935c Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 3 Mar 2020 18:25:34 -0800 Subject: [PATCH 002/129] Use field name for Parquet schema mismatch checking --- .../hive/parquet/ParquetPageSourceFactory.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index f3748e62c6e90..b7e30e8d4fff3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -32,6 +32,7 @@ import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.spi.type.RowType; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; @@ -61,6 +62,7 @@ import java.util.Map.Entry; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; @@ -93,6 +95,7 @@ import static com.facebook.presto.spi.type.StandardTypes.VARBINARY; import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Strings.nullToEmpty; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -315,8 +318,19 @@ private static boolean checkSchemaMatch(org.apache.parquet.schema.Type parquetTy switch (prestoType) { case ROW: if (groupType.getFields().size() == type.getTypeParameters().size()) { + checkState(type instanceof RowType, "It must be a RowType here."); + RowType rowType = (RowType) type; + Map prestoFieldMap = rowType.getFields().stream().collect( + Collectors.toMap( + f -> f.getName().get(), + f -> f.getType())); for (int i = 0; i < groupType.getFields().size(); i++) { - if (!checkSchemaMatch(groupType.getFields().get(i), type.getTypeParameters().get(i))) { + org.apache.parquet.schema.Type parquetFieldType = groupType.getFields().get(i); + Type prestoFieldType = prestoFieldMap.get(parquetFieldType.getName()); + if (prestoFieldType == null) { + prestoFieldType = prestoFieldMap.get(parquetFieldType.getName() + "_"); + } + if (!checkSchemaMatch(parquetFieldType, prestoFieldType)) { return false; } } From 746c290a0374c987fc8935ff7e3eb1df34a46d9b Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Wed, 25 Mar 2020 22:12:28 -0700 Subject: [PATCH 003/129] add unit test for parquet schema mismatch checker and fix code review issues --- .../parquet/ParquetPageSourceFactory.java | 15 ++-- .../presto/hive/TestHiveFileFormats.java | 85 +++++++++++++++++++ 2 files changed, 91 insertions(+), 9 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index b7e30e8d4fff3..ccecdb1462657 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -58,6 +58,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; @@ -95,7 +96,6 @@ import static com.facebook.presto.spi.type.StandardTypes.VARBINARY; import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Strings.nullToEmpty; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -318,19 +318,16 @@ private static boolean checkSchemaMatch(org.apache.parquet.schema.Type parquetTy switch (prestoType) { case ROW: if (groupType.getFields().size() == type.getTypeParameters().size()) { - checkState(type instanceof RowType, "It must be a RowType here."); RowType rowType = (RowType) type; Map prestoFieldMap = rowType.getFields().stream().collect( Collectors.toMap( - f -> f.getName().get(), - f -> f.getType())); + field -> field.getName().get().toLowerCase(Locale.ENGLISH), + field -> field.getType())); for (int i = 0; i < groupType.getFields().size(); i++) { org.apache.parquet.schema.Type parquetFieldType = groupType.getFields().get(i); - Type prestoFieldType = prestoFieldMap.get(parquetFieldType.getName()); - if (prestoFieldType == null) { - prestoFieldType = prestoFieldMap.get(parquetFieldType.getName() + "_"); - } - if (!checkSchemaMatch(parquetFieldType, prestoFieldType)) { + String fieldName = parquetFieldType.getName().toLowerCase(Locale.ENGLISH); + Type prestoFieldType = prestoFieldMap.get(fieldName); + if (prestoFieldType != null && !checkSchemaMatch(parquetFieldType, prestoFieldType)) { return false; } } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index 5ea43d8c0c663..96fa8a698e8bd 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -58,6 +58,7 @@ import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.OptionalInt; @@ -722,6 +723,90 @@ public void testSchemaMismatch() .isFailingForPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS), expectedErrorCode, expectedMessageRowLongNest); } + @Test + public void testSchemaMismatchOnNestedStruct() + throws Exception + { + //test out of order fields in nested Row type + TestColumn writeColumn = new TestColumn("column_name", + getStandardMapObjectInspector( + javaStringObjectInspector, + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("s_int", "s_double"), + ImmutableList.of(javaIntObjectInspector, javaDoubleObjectInspector)))), + ImmutableMap.of("test", ImmutableList.of(Arrays.asList(1, 5.0))), + mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(INTEGER, DOUBLE))), + "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(INTEGER, DOUBLE)), rowBlockOf(ImmutableList.of(INTEGER, DOUBLE), 1L, 5.0)))); + TestColumn readColumn = new TestColumn("column_name", + getStandardMapObjectInspector( + javaStringObjectInspector, + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("s_double", "s_int"), //out of order + ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), + ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), + mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), + "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + assertThatFileFormat(PARQUET) + .withWriteColumns(ImmutableList.of(writeColumn)) + .withReadColumns(ImmutableList.of(readColumn)) + .withRowsCount(1) + .withSession(parquetPageSourceSession) + .isReadableByPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS)); + + //test field name case sensitivity in nested Row type + readColumn = new TestColumn("column_name", + getStandardMapObjectInspector( + javaStringObjectInspector, + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("s_DOUBLE", "s_INT"), //out of order + ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), + ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), + mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), + "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + assertThatFileFormat(PARQUET) + .withWriteColumns(ImmutableList.of(writeColumn)) + .withReadColumns(ImmutableList.of(readColumn)) + .withRowsCount(1) + .withSession(parquetPageSourceSession) + .isReadableByPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS)); + + //test field name mismatch in nested Row type + readColumn = new TestColumn("column_name", + getStandardMapObjectInspector( + javaStringObjectInspector, + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("s_double_old_name", "s_int"), //rename a sub-field + ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), + ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), + mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), + "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + + HiveErrorCode expectedErrorCode = HIVE_PARTITION_SCHEMA_MISMATCH; + String expectedMessageRowLongNest = "The column column_name is declared as type map>>, but the Parquet file declares the column as type optional group column_name (MAP) {\n" + + " repeated group map (MAP_KEY_VALUE) {\n" + + " required binary key (UTF8);\n" + + " optional group value (LIST) {\n" + + " repeated group bag {\n" + + " optional group array_element {\n" + + " optional int32 s_int;\n" + + " optional double s_double;\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + "}"; + assertThatFileFormat(PARQUET) + .withWriteColumns(ImmutableList.of(writeColumn)) + .withReadColumns(ImmutableList.of(readColumn)) + .withRowsCount(1) + .withSession(parquetPageSourceSession) + .isFailingForPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS), expectedErrorCode, expectedMessageRowLongNest); + } + private void testCursorProvider(HiveRecordCursorProvider cursorProvider, FileSplit split, HiveStorageFormat storageFormat, From 7a01f2be75286cc3ba2cfe15939f5d5773d95822 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 21 Apr 2020 01:03:17 -0700 Subject: [PATCH 004/129] Make parquet's schema check more tolerant for adding and removing sub-field in struct --- .../parquet/ParquetPageSourceFactory.java | 27 +++-- .../presto/hive/TestHiveFileFormats.java | 99 ++++++++++--------- 2 files changed, 65 insertions(+), 61 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index ccecdb1462657..ab1cbc23bdcf4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -317,23 +317,20 @@ private static boolean checkSchemaMatch(org.apache.parquet.schema.Type parquetTy GroupType groupType = parquetType.asGroupType(); switch (prestoType) { case ROW: - if (groupType.getFields().size() == type.getTypeParameters().size()) { - RowType rowType = (RowType) type; - Map prestoFieldMap = rowType.getFields().stream().collect( - Collectors.toMap( - field -> field.getName().get().toLowerCase(Locale.ENGLISH), - field -> field.getType())); - for (int i = 0; i < groupType.getFields().size(); i++) { - org.apache.parquet.schema.Type parquetFieldType = groupType.getFields().get(i); - String fieldName = parquetFieldType.getName().toLowerCase(Locale.ENGLISH); - Type prestoFieldType = prestoFieldMap.get(fieldName); - if (prestoFieldType != null && !checkSchemaMatch(parquetFieldType, prestoFieldType)) { - return false; - } + RowType rowType = (RowType) type; + Map prestoFieldMap = rowType.getFields().stream().collect( + Collectors.toMap( + field -> field.getName().get().toLowerCase(Locale.ENGLISH), + field -> field.getType())); + for (int i = 0; i < groupType.getFields().size(); i++) { + org.apache.parquet.schema.Type parquetFieldType = groupType.getFields().get(i); + String fieldName = parquetFieldType.getName().toLowerCase(Locale.ENGLISH); + Type prestoFieldType = prestoFieldMap.get(fieldName); + if (prestoFieldType != null && !checkSchemaMatch(parquetFieldType, prestoFieldType)) { + return false; } - return true; } - return false; + return true; case MAP: if (groupType.getFields().size() != 1) { return false; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index 96fa8a698e8bd..e4ad95de9374d 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -699,18 +699,15 @@ public void testSchemaMismatch() .withSession(parquetPageSourceSession) .isFailingForPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS), expectedErrorCode, expectedMessageRowLongLong); - String expectedMessageMapLongRowLong = "The column column_name is declared as type struct, but the Parquet file declares the column as type optional group column_name (MAP) {\n" - + " repeated group map (MAP_KEY_VALUE) {\n" - + " required int64 key;\n" - + " optional int64 value;\n" - + " }\n" - + "}"; - + TestColumn rowLongColumnReadOnMap = new TestColumn("column_name", + getStandardStructObjectInspector(ImmutableList.of("s_bigint"), ImmutableList.of(javaLongObjectInspector)), + new Long[] {1L}, + null); assertThatFileFormat(PARQUET) .withWriteColumns(ImmutableList.of(mapLongColumn)) - .withReadColumns(ImmutableList.of(rowLongColumn)) + .withReadColumns(ImmutableList.of(rowLongColumnReadOnMap)) .withSession(parquetPageSourceSession) - .isFailingForPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS), expectedErrorCode, expectedMessageMapLongRowLong); + .isReadableByPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS)); String expectedMessageRowLongNest = "The column column_name is declared as type map>>, but the Parquet file declares the column as type optional group column_name {\n" + " optional int64 s_bigint;\n" @@ -731,23 +728,39 @@ public void testSchemaMismatchOnNestedStruct() TestColumn writeColumn = new TestColumn("column_name", getStandardMapObjectInspector( javaStringObjectInspector, - getStandardListObjectInspector( - getStandardStructObjectInspector( - ImmutableList.of("s_int", "s_double"), - ImmutableList.of(javaIntObjectInspector, javaDoubleObjectInspector)))), - ImmutableMap.of("test", ImmutableList.of(Arrays.asList(1, 5.0))), - mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(INTEGER, DOUBLE))), - "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(INTEGER, DOUBLE)), rowBlockOf(ImmutableList.of(INTEGER, DOUBLE), 1L, 5.0)))); + getStandardStructObjectInspector( + ImmutableList.of("s_int", "s_double"), + ImmutableList.of(javaIntObjectInspector, javaDoubleObjectInspector))), + ImmutableMap.of("test", Arrays.asList(1, 5.0)), + mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(INTEGER, DOUBLE)), + "test", rowBlockOf(ImmutableList.of(INTEGER, DOUBLE), 1L, 5.0))); TestColumn readColumn = new TestColumn("column_name", getStandardMapObjectInspector( javaStringObjectInspector, - getStandardListObjectInspector( - getStandardStructObjectInspector( - ImmutableList.of("s_double", "s_int"), //out of order - ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), - ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), - mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), - "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + getStandardStructObjectInspector( + ImmutableList.of("s_double", "s_int"), //out of order + ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector))), + ImmutableMap.of("test", Arrays.asList(5.0, 1)), + mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), + "test", rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L))); + assertThatFileFormat(PARQUET) + .withWriteColumns(ImmutableList.of(writeColumn)) + .withReadColumns(ImmutableList.of(readColumn)) + .withRowsCount(1) + .withSession(parquetPageSourceSession) + .isReadableByPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS)); + + //test add/remove sub-fields + readColumn = new TestColumn("column_name", + getStandardMapObjectInspector( + javaStringObjectInspector, + getStandardStructObjectInspector( + ImmutableList.of("s_int", "s_int_new"), //add sub-field s_int_new, remove s_double + ImmutableList.of(javaIntObjectInspector, javaIntObjectInspector))), + ImmutableMap.of("test", Arrays.asList(1, 5.0)), + mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(INTEGER, INTEGER)), + "test", rowBlockOf(ImmutableList.of(INTEGER, INTEGER), 1L, null))); //expected null for s_int_new + assertThatFileFormat(PARQUET) .withWriteColumns(ImmutableList.of(writeColumn)) .withReadColumns(ImmutableList.of(readColumn)) @@ -759,13 +772,12 @@ public void testSchemaMismatchOnNestedStruct() readColumn = new TestColumn("column_name", getStandardMapObjectInspector( javaStringObjectInspector, - getStandardListObjectInspector( - getStandardStructObjectInspector( - ImmutableList.of("s_DOUBLE", "s_INT"), //out of order - ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), - ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), - mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), - "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + getStandardStructObjectInspector( + ImmutableList.of("s_DOUBLE", "s_INT"), //out of order + ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector))), + ImmutableMap.of("test", Arrays.asList(5.0, 1)), + mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), + "test", rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L))); assertThatFileFormat(PARQUET) .withWriteColumns(ImmutableList.of(writeColumn)) .withReadColumns(ImmutableList.of(readColumn)) @@ -773,29 +785,24 @@ public void testSchemaMismatchOnNestedStruct() .withSession(parquetPageSourceSession) .isReadableByPageSource(new ParquetPageSourceFactory(TYPE_MANAGER, HDFS_ENVIRONMENT, STATS)); - //test field name mismatch in nested Row type + //test sub-field type mismatch in nested Row type readColumn = new TestColumn("column_name", getStandardMapObjectInspector( javaStringObjectInspector, - getStandardListObjectInspector( - getStandardStructObjectInspector( - ImmutableList.of("s_double_old_name", "s_int"), //rename a sub-field - ImmutableList.of(javaDoubleObjectInspector, javaIntObjectInspector)))), - ImmutableMap.of("test", ImmutableList.of(Arrays.asList(5.0, 1))), - mapBlockOf(createUnboundedVarcharType(), new ArrayType(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER))), - "test", arrayBlockOf(RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L)))); + getStandardStructObjectInspector( + ImmutableList.of("s_double", "s_int"), + ImmutableList.of(javaIntObjectInspector, javaIntObjectInspector))), //re-type a sub-field + ImmutableMap.of("test", Arrays.asList(5, 1)), + mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(INTEGER, INTEGER)), + "test", rowBlockOf(ImmutableList.of(INTEGER, INTEGER), 5L, 1L))); HiveErrorCode expectedErrorCode = HIVE_PARTITION_SCHEMA_MISMATCH; - String expectedMessageRowLongNest = "The column column_name is declared as type map>>, but the Parquet file declares the column as type optional group column_name (MAP) {\n" + + String expectedMessageRowLongNest = "The column column_name is declared as type map>, but the Parquet file declares the column as type optional group column_name (MAP) {\n" + " repeated group map (MAP_KEY_VALUE) {\n" + " required binary key (UTF8);\n" + - " optional group value (LIST) {\n" + - " repeated group bag {\n" + - " optional group array_element {\n" + - " optional int32 s_int;\n" + - " optional double s_double;\n" + - " }\n" + - " }\n" + + " optional group value {\n" + + " optional int32 s_int;\n" + + " optional double s_double;\n" + " }\n" + " }\n" + "}"; From 6aac57fee4b1f177330e4c164b703209da5934ee Mon Sep 17 00:00:00 2001 From: Yubin Li Date: Tue, 21 Apr 2020 15:42:09 +0800 Subject: [PATCH 005/129] Clean up PlanOptimizerProvider while dropping connector --- .../com/facebook/presto/connector/ConnectorManager.java | 1 + .../presto/sql/planner/ConnectorPlanOptimizerManager.java | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java index 37a111bb5fcef..0499a6afa29ac 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java @@ -334,6 +334,7 @@ private synchronized void removeConnectorInternal(ConnectorId connectorId) metadataManager.getSchemaPropertyManager().removeProperties(connectorId); metadataManager.getAnalyzePropertyManager().removeProperties(connectorId); metadataManager.getSessionPropertyManager().removeConnectorSessionProperties(connectorId); + connectorPlanOptimizerManager.removePlanOptimizerProvider(connectorId); MaterializedConnector materializedConnector = connectors.remove(connectorId); if (materializedConnector != null) { diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ConnectorPlanOptimizerManager.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ConnectorPlanOptimizerManager.java index 6be197f8e92b2..7dfb48014de1c 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ConnectorPlanOptimizerManager.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ConnectorPlanOptimizerManager.java @@ -45,6 +45,12 @@ public void addPlanOptimizerProvider(ConnectorId connectorId, ConnectorPlanOptim "ConnectorPlanOptimizerProvider for connector '%s' is already registered", connectorId); } + public void removePlanOptimizerProvider(ConnectorId connectorId) + { + requireNonNull(connectorId, "connectorId is null"); + planOptimizerProviders.remove(connectorId); + } + public Map> getOptimizers(PlanPhase phase) { switch (phase) { From f220d7f47f0fa0f8f9dc5bc446903f0cbffe170b Mon Sep 17 00:00:00 2001 From: Ariel Weisberg Date: Tue, 14 Apr 2020 13:15:33 -0400 Subject: [PATCH 006/129] Add soft memory limit configuration properties Soft memory limits are default memory limits given to each query that can be overridden using session properties up to the hard limit set by the existing configuration properties. Having soft limits makes it easier to migrate a workload to lower memory limits by allowing only the queries that require higher limits to specify them while defaulting other queries to lower limits. Available soft memory limit configuration properties: query.soft-max-memory-per-node query.soft-max-total-memory-per-node query.soft-max-total-memory query.soft-max-memory --- .../presto/SystemSessionProperties.java | 8 ++-- .../presto/memory/ClusterMemoryManager.java | 4 ++ .../presto/memory/LocalMemoryManager.java | 12 ++++++ .../presto/memory/MemoryManagerConfig.java | 37 +++++++++++++++++++ .../presto/memory/NodeMemoryConfig.java | 36 ++++++++++++++++++ .../memory/TestMemoryManagerConfig.java | 10 ++++- .../presto/memory/TestNodeMemoryConfig.java | 7 ++++ 7 files changed, 108 insertions(+), 6 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java index 5fc0f89963de9..9419bd7f519f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java +++ b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java @@ -362,7 +362,7 @@ public SystemSessionProperties( "Maximum amount of distributed memory a query can use", VARCHAR, DataSize.class, - memoryManagerConfig.getMaxQueryMemory(), + memoryManagerConfig.getSoftMaxQueryMemory(), true, value -> DataSize.valueOf((String) value), DataSize::toString), @@ -371,7 +371,7 @@ public SystemSessionProperties( "Maximum amount of user task memory a query can use", VARCHAR, DataSize.class, - nodeMemoryConfig.getMaxQueryMemoryPerNode(), + nodeMemoryConfig.getSoftMaxQueryMemoryPerNode(), true, value -> DataSize.valueOf((String) value), DataSize::toString), @@ -380,7 +380,7 @@ public SystemSessionProperties( "Maximum amount of distributed total memory a query can use", VARCHAR, DataSize.class, - memoryManagerConfig.getMaxQueryTotalMemory(), + memoryManagerConfig.getSoftMaxQueryTotalMemory(), true, value -> DataSize.valueOf((String) value), DataSize::toString), @@ -389,7 +389,7 @@ public SystemSessionProperties( "Maximum amount of total (user + system) task memory a query can use", VARCHAR, DataSize.class, - nodeMemoryConfig.getMaxQueryTotalMemoryPerNode(), + nodeMemoryConfig.getSoftMaxQueryTotalMemoryPerNode(), true, value -> DataSize.valueOf((String) value), DataSize::toString), diff --git a/presto-main/src/main/java/com/facebook/presto/memory/ClusterMemoryManager.java b/presto-main/src/main/java/com/facebook/presto/memory/ClusterMemoryManager.java index ce7e43d62bf60..6e3d4d35fc5d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/memory/ClusterMemoryManager.java +++ b/presto-main/src/main/java/com/facebook/presto/memory/ClusterMemoryManager.java @@ -181,6 +181,10 @@ public ClusterMemoryManager( verify(maxQueryMemory.toBytes() <= maxQueryTotalMemory.toBytes(), "maxQueryMemory cannot be greater than maxQueryTotalMemory"); + verify(config.getSoftMaxQueryMemory().toBytes() <= maxQueryMemory.toBytes(), + "Soft max query memory cannot be greater than hard limit"); + verify(config.getSoftMaxQueryTotalMemory().toBytes() <= maxQueryTotalMemory.toBytes(), + "Soft max query total memory cannot be greater than hard limit"); this.pools = createClusterMemoryPools(nodeMemoryConfig.isReservedPoolEnabled()); } diff --git a/presto-main/src/main/java/com/facebook/presto/memory/LocalMemoryManager.java b/presto-main/src/main/java/com/facebook/presto/memory/LocalMemoryManager.java index cd7e0ced367c4..db836ab7fa3cc 100644 --- a/presto-main/src/main/java/com/facebook/presto/memory/LocalMemoryManager.java +++ b/presto-main/src/main/java/com/facebook/presto/memory/LocalMemoryManager.java @@ -28,6 +28,8 @@ import static com.facebook.presto.memory.NodeMemoryConfig.QUERY_MAX_MEMORY_PER_NODE_CONFIG; import static com.facebook.presto.memory.NodeMemoryConfig.QUERY_MAX_TOTAL_MEMORY_PER_NODE_CONFIG; +import static com.facebook.presto.memory.NodeMemoryConfig.QUERY_SOFT_MAX_MEMORY_PER_NODE_CONFIG; +import static com.facebook.presto.memory.NodeMemoryConfig.QUERY_SOFT_MAX_TOTAL_MEMORY_PER_NODE_CONFIG; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static io.airlift.units.DataSize.Unit.BYTE; @@ -64,6 +66,16 @@ private void configureMemoryPools(NodeMemoryConfig config, long availableMemory) "Max query memory per node (%s) cannot be greater than the max query total memory per node (%s).", QUERY_MAX_MEMORY_PER_NODE_CONFIG, QUERY_MAX_TOTAL_MEMORY_PER_NODE_CONFIG); + checkArgument( + config.getMaxQueryMemoryPerNode().toBytes() >= config.getSoftMaxQueryMemoryPerNode().toBytes(), + "Max query memory per node (%s) must be >= soft limit (%s).", + QUERY_MAX_MEMORY_PER_NODE_CONFIG, + QUERY_SOFT_MAX_MEMORY_PER_NODE_CONFIG); + checkArgument( + config.getMaxQueryTotalMemoryPerNode().toBytes() >= config.getSoftMaxQueryTotalMemoryPerNode().toBytes(), + "Max query total memory per node (%s) must be >= soft limit (%s).", + QUERY_MAX_TOTAL_MEMORY_PER_NODE_CONFIG, + QUERY_SOFT_MAX_TOTAL_MEMORY_PER_NODE_CONFIG); ImmutableMap.Builder builder = ImmutableMap.builder(); long generalPoolSize = maxMemory.toBytes(); if (config.isReservedPoolEnabled()) { diff --git a/presto-main/src/main/java/com/facebook/presto/memory/MemoryManagerConfig.java b/presto-main/src/main/java/com/facebook/presto/memory/MemoryManagerConfig.java index 45f5db6e71437..880fdf6910d87 100644 --- a/presto-main/src/main/java/com/facebook/presto/memory/MemoryManagerConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/memory/MemoryManagerConfig.java @@ -33,8 +33,10 @@ public class MemoryManagerConfig { // enforced against user memory allocations private DataSize maxQueryMemory = new DataSize(20, GIGABYTE); + private DataSize softMaxQueryMemory; // enforced against user + system memory allocations (default is maxQueryMemory * 2) private DataSize maxQueryTotalMemory; + private DataSize softMaxQueryTotalMemory; private String lowMemoryKillerPolicy = LowMemoryKillerPolicy.NONE; private Duration killOnOutOfMemoryDelay = new Duration(5, MINUTES); @@ -78,6 +80,22 @@ public MemoryManagerConfig setMaxQueryMemory(DataSize maxQueryMemory) return this; } + @NotNull + public DataSize getSoftMaxQueryMemory() + { + if (softMaxQueryMemory == null) { + return getMaxQueryMemory(); + } + return softMaxQueryMemory; + } + + @Config("query.soft-max-memory") + public MemoryManagerConfig setSoftMaxQueryMemory(DataSize softMaxQueryMemory) + { + this.softMaxQueryMemory = softMaxQueryMemory; + return this; + } + @NotNull public DataSize getMaxQueryTotalMemory() { @@ -94,6 +112,25 @@ public MemoryManagerConfig setMaxQueryTotalMemory(DataSize maxQueryTotalMemory) return this; } + @NotNull + public DataSize getSoftMaxQueryTotalMemory() + { + if (softMaxQueryTotalMemory == null) { + if (maxQueryTotalMemory != null) { + return maxQueryTotalMemory; + } + return succinctBytes(getSoftMaxQueryMemory().toBytes() * 2); + } + return softMaxQueryTotalMemory; + } + + @Config("query.soft-max-total-memory") + public MemoryManagerConfig setSoftMaxQueryTotalMemory(DataSize softMaxQueryTotalMemory) + { + this.softMaxQueryTotalMemory = softMaxQueryTotalMemory; + return this; + } + public static class LowMemoryKillerPolicy { public static final String NONE = "none"; diff --git a/presto-main/src/main/java/com/facebook/presto/memory/NodeMemoryConfig.java b/presto-main/src/main/java/com/facebook/presto/memory/NodeMemoryConfig.java index 107f802b730c1..7a2e5bfd5f1f7 100644 --- a/presto-main/src/main/java/com/facebook/presto/memory/NodeMemoryConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/memory/NodeMemoryConfig.java @@ -26,14 +26,18 @@ public class NodeMemoryConfig { public static final long AVAILABLE_HEAP_MEMORY = Runtime.getRuntime().maxMemory(); public static final String QUERY_MAX_MEMORY_PER_NODE_CONFIG = "query.max-memory-per-node"; + public static final String QUERY_SOFT_MAX_MEMORY_PER_NODE_CONFIG = "query.soft-max-memory-per-node"; public static final String QUERY_MAX_TOTAL_MEMORY_PER_NODE_CONFIG = "query.max-total-memory-per-node"; + public static final String QUERY_SOFT_MAX_TOTAL_MEMORY_PER_NODE_CONFIG = "query.soft-max-total-memory-per-node"; private boolean isReservedPoolEnabled = true; private DataSize maxQueryMemoryPerNode = new DataSize(AVAILABLE_HEAP_MEMORY * 0.1, BYTE); + private DataSize softMaxQueryMemoryPerNode; // This is a per-query limit for the user plus system allocations. private DataSize maxQueryTotalMemoryPerNode = new DataSize(AVAILABLE_HEAP_MEMORY * 0.3, BYTE); + private DataSize softMaxQueryTotalMemoryPerNode; private DataSize heapHeadroom = new DataSize(AVAILABLE_HEAP_MEMORY * 0.3, BYTE); @NotNull @@ -49,6 +53,22 @@ public NodeMemoryConfig setMaxQueryMemoryPerNode(DataSize maxQueryMemoryPerNode) return this; } + @NotNull + public DataSize getSoftMaxQueryMemoryPerNode() + { + if (softMaxQueryMemoryPerNode == null) { + return getMaxQueryMemoryPerNode(); + } + return softMaxQueryMemoryPerNode; + } + + @Config(QUERY_SOFT_MAX_MEMORY_PER_NODE_CONFIG) + public NodeMemoryConfig setSoftMaxQueryMemoryPerNode(DataSize softMaxQueryMemoryPerNode) + { + this.softMaxQueryMemoryPerNode = softMaxQueryMemoryPerNode; + return this; + } + public boolean isReservedPoolEnabled() { return isReservedPoolEnabled; @@ -74,6 +94,22 @@ public NodeMemoryConfig setMaxQueryTotalMemoryPerNode(DataSize maxQueryTotalMemo return this; } + @NotNull + public DataSize getSoftMaxQueryTotalMemoryPerNode() + { + if (softMaxQueryTotalMemoryPerNode == null) { + return getMaxQueryTotalMemoryPerNode(); + } + return softMaxQueryTotalMemoryPerNode; + } + + @Config(QUERY_SOFT_MAX_TOTAL_MEMORY_PER_NODE_CONFIG) + public NodeMemoryConfig setSoftMaxQueryTotalMemoryPerNode(DataSize softMaxQueryTotalMemoryPerNode) + { + this.softMaxQueryTotalMemoryPerNode = softMaxQueryTotalMemoryPerNode; + return this; + } + public DataSize getHeapHeadroom() { return heapHeadroom; diff --git a/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryManagerConfig.java b/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryManagerConfig.java index 61846a5692a66..8e1a349344c22 100644 --- a/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryManagerConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryManagerConfig.java @@ -38,7 +38,9 @@ public void testDefaults() .setLowMemoryKillerPolicy(NONE) .setKillOnOutOfMemoryDelay(new Duration(5, MINUTES)) .setMaxQueryMemory(new DataSize(20, GIGABYTE)) - .setMaxQueryTotalMemory(new DataSize(40, GIGABYTE))); + .setSoftMaxQueryMemory(new DataSize(20, GIGABYTE)) + .setMaxQueryTotalMemory(new DataSize(40, GIGABYTE)) + .setSoftMaxQueryTotalMemory(new DataSize(40, GIGABYTE))); } @Test @@ -48,14 +50,18 @@ public void testExplicitPropertyMappings() .put("query.low-memory-killer.policy", "total-reservation-on-blocked-nodes") .put("query.low-memory-killer.delay", "20s") .put("query.max-memory", "2GB") + .put("query.soft-max-memory", "1GB") .put("query.max-total-memory", "3GB") + .put("query.soft-max-total-memory", "2GB") .build(); MemoryManagerConfig expected = new MemoryManagerConfig() .setLowMemoryKillerPolicy(TOTAL_RESERVATION_ON_BLOCKED_NODES) .setKillOnOutOfMemoryDelay(new Duration(20, SECONDS)) .setMaxQueryMemory(new DataSize(2, GIGABYTE)) - .setMaxQueryTotalMemory(new DataSize(3, GIGABYTE)); + .setSoftMaxQueryMemory(new DataSize(1, GIGABYTE)) + .setMaxQueryTotalMemory(new DataSize(3, GIGABYTE)) + .setSoftMaxQueryTotalMemory(new DataSize(2, GIGABYTE)); assertFullMapping(properties, expected); } diff --git a/presto-main/src/test/java/com/facebook/presto/memory/TestNodeMemoryConfig.java b/presto-main/src/test/java/com/facebook/presto/memory/TestNodeMemoryConfig.java index 3c027b8fe1bbd..850f78b387f89 100644 --- a/presto-main/src/test/java/com/facebook/presto/memory/TestNodeMemoryConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/memory/TestNodeMemoryConfig.java @@ -25,6 +25,7 @@ import static com.facebook.presto.memory.NodeMemoryConfig.AVAILABLE_HEAP_MEMORY; import static io.airlift.units.DataSize.Unit.BYTE; import static io.airlift.units.DataSize.Unit.GIGABYTE; +import static io.airlift.units.DataSize.Unit.MEGABYTE; public class TestNodeMemoryConfig { @@ -33,7 +34,9 @@ public void testDefaults() { ConfigAssertions.assertRecordedDefaults(ConfigAssertions.recordDefaults(NodeMemoryConfig.class) .setMaxQueryMemoryPerNode(new DataSize(AVAILABLE_HEAP_MEMORY * 0.1, BYTE)) + .setSoftMaxQueryMemoryPerNode(new DataSize(AVAILABLE_HEAP_MEMORY * 0.1, BYTE)) .setMaxQueryTotalMemoryPerNode(new DataSize(AVAILABLE_HEAP_MEMORY * 0.3, BYTE)) + .setSoftMaxQueryTotalMemoryPerNode(new DataSize(AVAILABLE_HEAP_MEMORY * 0.3, BYTE)) .setHeapHeadroom(new DataSize(AVAILABLE_HEAP_MEMORY * 0.3, BYTE)) .setReservedPoolEnabled(true)); } @@ -43,14 +46,18 @@ public void testExplicitPropertyMappings() { Map properties = new ImmutableMap.Builder() .put("query.max-memory-per-node", "1GB") + .put("query.soft-max-memory-per-node", "512MB") .put("query.max-total-memory-per-node", "3GB") + .put("query.soft-max-total-memory-per-node", "2GB") .put("memory.heap-headroom-per-node", "1GB") .put("experimental.reserved-pool-enabled", "false") .build(); NodeMemoryConfig expected = new NodeMemoryConfig() .setMaxQueryMemoryPerNode(new DataSize(1, GIGABYTE)) + .setSoftMaxQueryMemoryPerNode(new DataSize(512, MEGABYTE)) .setMaxQueryTotalMemoryPerNode(new DataSize(3, GIGABYTE)) + .setSoftMaxQueryTotalMemoryPerNode(new DataSize(2, GIGABYTE)) .setHeapHeadroom(new DataSize(1, GIGABYTE)) .setReservedPoolEnabled(false); From 8f7edbd6b2d491b6c124cbdd0e27c3015a98f728 Mon Sep 17 00:00:00 2001 From: Rohit Jain Date: Fri, 17 Apr 2020 10:41:22 -0700 Subject: [PATCH 007/129] Add config for orc compression codec Adding a configuration to handle compression codec for handling orc and dwrf storage format. Use hive.orc_compression_codec to override the generic compression codec for orc and dwrf storage format. The reason to add an extra configuration was the unavailability of uniform support of all compression codec across all storage formats. The ZSTD compression codec is only available for orc and dwrf storage format. --- .../presto/hive/HiveClientConfig.java | 13 +++++++ .../presto/hive/HiveInsertTableHandle.java | 2 ++ .../facebook/presto/hive/HiveMetadata.java | 36 ++++++++++++++----- .../presto/hive/HiveOutputTableHandle.java | 2 ++ .../presto/hive/HiveSessionProperties.java | 15 ++++++++ .../presto/hive/HiveWritableTableHandle.java | 25 ++++++++++--- .../presto/hive/TestHiveClientConfig.java | 3 ++ .../presto/hive/TestHivePageSink.java | 1 + 8 files changed, 84 insertions(+), 13 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientConfig.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientConfig.java index 438f06c361dee..f259a63230f97 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientConfig.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientConfig.java @@ -85,6 +85,7 @@ public class HiveClientConfig private HiveStorageFormat hiveStorageFormat = ORC; private HiveCompressionCodec compressionCodec = HiveCompressionCodec.GZIP; + private HiveCompressionCodec orcCompressionCodec = HiveCompressionCodec.GZIP; private boolean respectTableFormat = true; private boolean immutablePartitions; private boolean insertOverwriteImmutablePartitions; @@ -510,6 +511,18 @@ public HiveClientConfig setCompressionCodec(HiveCompressionCodec compressionCode return this; } + public HiveCompressionCodec getOrcCompressionCodec() + { + return orcCompressionCodec; + } + + @Config("hive.orc-compression-codec") + public HiveClientConfig setOrcCompressionCodec(HiveCompressionCodec orcCompressionCodec) + { + this.orcCompressionCodec = orcCompressionCodec; + return this; + } + public boolean isRespectTableFormat() { return respectTableFormat; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveInsertTableHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveInsertTableHandle.java index f0971c136864d..5c9008ed69185 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveInsertTableHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveInsertTableHandle.java @@ -38,6 +38,7 @@ public HiveInsertTableHandle( @JsonProperty("preferredOrderingColumns") List preferredOrderingColumns, @JsonProperty("tableStorageFormat") HiveStorageFormat tableStorageFormat, @JsonProperty("partitionStorageFormat") HiveStorageFormat partitionStorageFormat, + @JsonProperty("actualStorageFormat") HiveStorageFormat actualStorageFormat, @JsonProperty("compressionCodec") HiveCompressionCodec compressionCodec) { super( @@ -51,6 +52,7 @@ public HiveInsertTableHandle( preferredOrderingColumns, tableStorageFormat, partitionStorageFormat, + actualStorageFormat, compressionCodec); } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index c8e85a010a1eb..763a6da795eec 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -161,6 +161,7 @@ import static com.facebook.presto.hive.HivePartition.UNPARTITIONED_ID; import static com.facebook.presto.hive.HiveSessionProperties.getCompressionCodec; import static com.facebook.presto.hive.HiveSessionProperties.getHiveStorageFormat; +import static com.facebook.presto.hive.HiveSessionProperties.getOrcCompressionCodec; import static com.facebook.presto.hive.HiveSessionProperties.getTemporaryTableCompressionCodec; import static com.facebook.presto.hive.HiveSessionProperties.getTemporaryTableSchema; import static com.facebook.presto.hive.HiveSessionProperties.getTemporaryTableStorageFormat; @@ -174,6 +175,10 @@ import static com.facebook.presto.hive.HiveSessionProperties.isSortedWriteToTempPathEnabled; import static com.facebook.presto.hive.HiveSessionProperties.isSortedWritingEnabled; import static com.facebook.presto.hive.HiveSessionProperties.isStatisticsEnabled; +import static com.facebook.presto.hive.HiveStorageFormat.AVRO; +import static com.facebook.presto.hive.HiveStorageFormat.DWRF; +import static com.facebook.presto.hive.HiveStorageFormat.ORC; +import static com.facebook.presto.hive.HiveStorageFormat.values; import static com.facebook.presto.hive.HiveTableProperties.AVRO_SCHEMA_URL; import static com.facebook.presto.hive.HiveTableProperties.BUCKETED_BY_PROPERTY; import static com.facebook.presto.hive.HiveTableProperties.BUCKET_COUNT_PROPERTY; @@ -730,7 +735,7 @@ public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTable /** * Returns a TupleDomain of constraints that is suitable for Explain (Type IO) - * + *

* Only Hive partition columns that are used in IO planning. */ @Override @@ -905,7 +910,7 @@ public ConnectorTableHandle createTemporaryTable(ConnectorSession session, List< private void validateColumns(HiveStorageFormat hiveStorageFormat, List handles) { - if (hiveStorageFormat == HiveStorageFormat.AVRO) { + if (hiveStorageFormat == AVRO) { for (HiveColumnHandle handle : handles) { if (!handle.isPartitionKey()) { validateAvroType(handle.getHiveType().getTypeInfo(), handle.getName()); @@ -962,7 +967,7 @@ private Map getEmptyTableProperties(ConnectorTableMetadata table String avroSchemaUrl = getAvroSchemaUrl(tableMetadata.getProperties()); if (avroSchemaUrl != null) { HiveStorageFormat hiveStorageFormat = getHiveStorageFormat(tableMetadata.getProperties()); - if (hiveStorageFormat != HiveStorageFormat.AVRO) { + if (hiveStorageFormat != AVRO) { throw new PrestoException(INVALID_TABLE_PROPERTY, format("Cannot specify %s table property for storage format: %s", AVRO_SCHEMA_URL, hiveStorageFormat)); } tableProperties.put(AVRO_SCHEMA_URL_KEY, validateAndNormalizeAvroSchemaUrl(avroSchemaUrl, hdfsContext)); @@ -1283,7 +1288,8 @@ public HiveOutputTableHandle beginCreateTable(ConnectorSession session, Connecto locationHandle, tableStorageFormat, partitionStorageFormat, - getCompressionCodec(session), + actualStorageFormat, + getHiveCompressionCodec(session, false, actualStorageFormat), partitionedBy, bucketProperty, preferredOrderingColumns, @@ -1523,6 +1529,8 @@ public HiveInsertTableHandle beginInsert(ConnectorSession session, ConnectorTabl locationHandle = locationService.forExistingTable(metastore, session, table.get(), tempPathRequired); } + HiveStorageFormat partitionStorageFormat = isRespectTableFormat(session) ? tableStorageFormat : HiveSessionProperties.getHiveStorageFormat(session); + HiveStorageFormat actualStorageFormat = table.get().getPartitionColumns().isEmpty() ? tableStorageFormat : partitionStorageFormat; HiveInsertTableHandle result = new HiveInsertTableHandle( tableName.getSchemaName(), tableName.getTableName(), @@ -1533,8 +1541,9 @@ public HiveInsertTableHandle beginInsert(ConnectorSession session, ConnectorTabl table.get().getStorage().getBucketProperty(), decodePreferredOrderingColumnsFromStorage(table.get().getStorage()), tableStorageFormat, - isRespectTableFormat(session) ? tableStorageFormat : HiveSessionProperties.getHiveStorageFormat(session), - isTemporaryTable ? getTemporaryTableCompressionCodec(session) : getCompressionCodec(session)); + partitionStorageFormat, + actualStorageFormat, + getHiveCompressionCodec(session, isTemporaryTable, actualStorageFormat)); WriteInfo writeInfo = locationService.getQueryWriteInfo(locationHandle); metastore.declareIntentionToWrite( @@ -1548,6 +1557,17 @@ public HiveInsertTableHandle beginInsert(ConnectorSession session, ConnectorTabl return result; } + private HiveCompressionCodec getHiveCompressionCodec(ConnectorSession session, boolean isTemporaryTable, HiveStorageFormat storageFormat) + { + if (isTemporaryTable) { + return getTemporaryTableCompressionCodec(session); + } + if (storageFormat == ORC || storageFormat == DWRF) { + return getOrcCompressionCodec(session); + } + return getCompressionCodec(session); + } + @Override public Optional finishInsert(ConnectorSession session, ConnectorInsertTableHandle insertHandle, Collection fragments, Collection computedStatistics) { @@ -2023,7 +2043,7 @@ private boolean isPushdownFilterEnabled(ConnectorSession session, ConnectorTable boolean pushdownFilterEnabled = HiveSessionProperties.isPushdownFilterEnabled(session); if (pushdownFilterEnabled) { HiveStorageFormat hiveStorageFormat = getHiveStorageFormat(getTableMetadata(session, tableHandle).getProperties()); - if (hiveStorageFormat == HiveStorageFormat.ORC || hiveStorageFormat == HiveStorageFormat.DWRF) { + if (hiveStorageFormat == ORC || hiveStorageFormat == DWRF) { return true; } } @@ -2590,7 +2610,7 @@ private static HiveStorageFormat extractHiveStorageFormat(Table table) String outputFormat = storageFormat.getOutputFormat(); String serde = storageFormat.getSerDe(); - for (HiveStorageFormat format : HiveStorageFormat.values()) { + for (HiveStorageFormat format : values()) { if (format.getOutputFormat().equals(outputFormat) && format.getSerDe().equals(serde)) { return format; } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveOutputTableHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveOutputTableHandle.java index 818da58d9248f..9355ffe067542 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveOutputTableHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveOutputTableHandle.java @@ -45,6 +45,7 @@ public HiveOutputTableHandle( @JsonProperty("locationHandle") LocationHandle locationHandle, @JsonProperty("tableStorageFormat") HiveStorageFormat tableStorageFormat, @JsonProperty("partitionStorageFormat") HiveStorageFormat partitionStorageFormat, + @JsonProperty("actualStorageFormat") HiveStorageFormat actualStorageFormat, @JsonProperty("compressionCodec") HiveCompressionCodec compressionCodec, @JsonProperty("partitionedBy") List partitionedBy, @JsonProperty("bucketProperty") Optional bucketProperty, @@ -63,6 +64,7 @@ public HiveOutputTableHandle( preferredOrderingColumns, tableStorageFormat, partitionStorageFormat, + actualStorageFormat, compressionCodec); this.partitionedBy = ImmutableList.copyOf(requireNonNull(partitionedBy, "partitionedBy is null")); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java index 6f81111ddb90b..e5fb20187542b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java @@ -66,6 +66,7 @@ public final class HiveSessionProperties private static final String PAGEFILE_WRITER_MAX_STRIPE_SIZE = "pagefile_writer_max_stripe_size"; private static final String HIVE_STORAGE_FORMAT = "hive_storage_format"; private static final String COMPRESSION_CODEC = "compression_codec"; + private static final String ORC_COMPRESSION_CODEC = "orc_compression_codec"; private static final String RESPECT_TABLE_FORMAT = "respect_table_format"; private static final String PARQUET_USE_COLUMN_NAME = "parquet_use_column_names"; private static final String PARQUET_FAIL_WITH_CORRUPTED_STATISTICS = "parquet_fail_with_corrupted_statistics"; @@ -262,6 +263,15 @@ public HiveSessionProperties(HiveClientConfig hiveClientConfig, OrcFileWriterCon false, value -> HiveCompressionCodec.valueOf(((String) value).toUpperCase()), HiveCompressionCodec::name), + new PropertyMetadata<>( + ORC_COMPRESSION_CODEC, + "The preferred compression codec to use when writing ORC and DWRF files", + VARCHAR, + HiveCompressionCodec.class, + hiveClientConfig.getOrcCompressionCodec(), + false, + value -> HiveCompressionCodec.valueOf(((String) value).toUpperCase()), + HiveCompressionCodec::name), booleanProperty( RESPECT_TABLE_FORMAT, "Write new partitions using table format rather than default storage format", @@ -574,6 +584,11 @@ public static HiveCompressionCodec getCompressionCodec(ConnectorSession session) return session.getProperty(COMPRESSION_CODEC, HiveCompressionCodec.class); } + public static HiveCompressionCodec getOrcCompressionCodec(ConnectorSession session) + { + return session.getProperty(ORC_COMPRESSION_CODEC, HiveCompressionCodec.class); + } + public static boolean isRespectTableFormat(ConnectorSession session) { return session.getProperty(RESPECT_TABLE_FORMAT, Boolean.class); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWritableTableHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWritableTableHandle.java index 9ac64ca128bee..4c80a2a92f370 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWritableTableHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWritableTableHandle.java @@ -31,12 +31,14 @@ public class HiveWritableTableHandle private final String tableName; private final List inputColumns; private final String filePrefix; + private HivePageSinkMetadata pageSinkMetadata; private final LocationHandle locationHandle; private final Optional bucketProperty; private final List preferredOrderingColumns; private final HiveStorageFormat tableStorageFormat; private final HiveStorageFormat partitionStorageFormat; + private final HiveStorageFormat actualStorageFormat; private final HiveCompressionCodec compressionCodec; public HiveWritableTableHandle( @@ -50,6 +52,7 @@ public HiveWritableTableHandle( List preferredOrderingColumns, HiveStorageFormat tableStorageFormat, HiveStorageFormat partitionStorageFormat, + HiveStorageFormat actualStorageFormat, HiveCompressionCodec compressionCodec) { this.schemaName = requireNonNull(schemaName, "schemaName is null"); @@ -62,13 +65,11 @@ public HiveWritableTableHandle( this.preferredOrderingColumns = requireNonNull(preferredOrderingColumns, "preferredOrderingColumns is null"); this.tableStorageFormat = requireNonNull(tableStorageFormat, "tableStorageFormat is null"); this.partitionStorageFormat = requireNonNull(partitionStorageFormat, "partitionStorageFormat is null"); + this.actualStorageFormat = requireNonNull(actualStorageFormat, "actualStorageFormat is null"); this.compressionCodec = requireNonNull(compressionCodec, "compressionCodec is null"); - if (!compressionCodec.isSupportedStorageFormat(tableStorageFormat)) { - throw new PrestoException(GENERIC_USER_ERROR, String.format("%s compression is not supported with %s", compressionCodec.name(), tableStorageFormat.name())); - } - if (!compressionCodec.isSupportedStorageFormat(partitionStorageFormat)) { - throw new PrestoException(GENERIC_USER_ERROR, String.format("%s compression is not supported with %s", compressionCodec.name(), partitionStorageFormat.name())); + if (!compressionCodec.isSupportedStorageFormat(actualStorageFormat)) { + throw new PrestoException(GENERIC_USER_ERROR, String.format("%s compression is not supported with %s", compressionCodec.name(), actualStorageFormat.name())); } } @@ -120,18 +121,32 @@ public List getPreferredOrderingColumns() return preferredOrderingColumns; } + /* Use {@link #getActualStorageFormat()}*/ + @Deprecated @JsonProperty public HiveStorageFormat getTableStorageFormat() { return tableStorageFormat; } + /* Use {@link #getActualStorageFormat()}*/ + @Deprecated @JsonProperty public HiveStorageFormat getPartitionStorageFormat() { return partitionStorageFormat; } + /** + * The actualStorageFormat is the real storage format that gets used later in the pipeline. + * It could be either representing tableStorageFormat, or partitionStorageFormat. + */ + @JsonProperty + public HiveStorageFormat getActualStorageFormat() + { + return actualStorageFormat; + } + @JsonProperty public HiveCompressionCodec getCompressionCodec() { diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveClientConfig.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveClientConfig.java index 0d2ae8ece3df2..d2e2e72ac3cf8 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveClientConfig.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveClientConfig.java @@ -70,6 +70,7 @@ public void testDefaults() .setResourceConfigFiles("") .setHiveStorageFormat(ORC) .setCompressionCodec(HiveCompressionCodec.GZIP) + .setOrcCompressionCodec(HiveCompressionCodec.GZIP) .setRespectTableFormat(true) .setImmutablePartitions(false) .setInsertOverwriteImmutablePartitionEnabled(false) @@ -162,6 +163,7 @@ public void testExplicitPropertyMappings() .put("hive.recursive-directories", "true") .put("hive.storage-format", "SEQUENCEFILE") .put("hive.compression-codec", "NONE") + .put("hive.orc-compression-codec", "ZSTD") .put("hive.respect-table-format", "false") .put("hive.immutable-partitions", "true") .put("hive.insert-overwrite-immutable-partitions-enabled", "true") @@ -254,6 +256,7 @@ public void testExplicitPropertyMappings() .setResourceConfigFiles(ImmutableList.of("/foo.xml", "/bar.xml")) .setHiveStorageFormat(HiveStorageFormat.SEQUENCEFILE) .setCompressionCodec(HiveCompressionCodec.NONE) + .setOrcCompressionCodec(HiveCompressionCodec.ZSTD) .setRespectTableFormat(false) .setImmutablePartitions(true) .setInsertOverwriteImmutablePartitionEnabled(true) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java index a3ec67c709cfa..555635ed19e7c 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java @@ -284,6 +284,7 @@ private static ConnectorPageSink createPageSink(HiveTransactionHandle transactio locationHandle, config.getHiveStorageFormat(), config.getHiveStorageFormat(), + config.getHiveStorageFormat(), config.getCompressionCodec(), ImmutableList.of(), Optional.empty(), From fc81c05a26cec5d8f532c613161d6709bd478db7 Mon Sep 17 00:00:00 2001 From: "James A. Gill" Date: Tue, 14 Apr 2020 16:24:46 -0400 Subject: [PATCH 008/129] Refactor flattenCollection to GeometryUtils We have need for this function in several places, and it is purely geometric. --- .../presto/geospatial/GeometryUtils.java | 66 +++++++++++++++++++ .../presto/geospatial/TestGeometryUtils.java | 51 ++++++++++++++ .../plugin/geospatial/GeoFunctions.java | 53 +-------------- 3 files changed, 118 insertions(+), 52 deletions(-) diff --git a/presto-geospatial-toolkit/src/main/java/com/facebook/presto/geospatial/GeometryUtils.java b/presto-geospatial-toolkit/src/main/java/com/facebook/presto/geospatial/GeometryUtils.java index 377c34ddaf2c9..b9ae24c98aea6 100644 --- a/presto-geospatial-toolkit/src/main/java/com/facebook/presto/geospatial/GeometryUtils.java +++ b/presto-geospatial-toolkit/src/main/java/com/facebook/presto/geospatial/GeometryUtils.java @@ -20,10 +20,13 @@ import com.esri.core.geometry.MultiVertexGeometry; import com.esri.core.geometry.Point; import com.esri.core.geometry.Polygon; +import com.esri.core.geometry.ogc.OGCConcreteGeometryCollection; import com.esri.core.geometry.ogc.OGCGeometry; +import com.esri.core.geometry.ogc.OGCGeometryCollection; import com.esri.core.geometry.ogc.OGCPoint; import com.esri.core.geometry.ogc.OGCPolygon; import com.facebook.presto.spi.PrestoException; +import com.google.common.collect.ImmutableList; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.CoordinateSequence; import org.locationtech.jts.geom.CoordinateSequenceFactory; @@ -36,11 +39,16 @@ import org.locationtech.jts.operation.valid.IsValidOp; import org.locationtech.jts.operation.valid.TopologyValidationError; +import java.util.ArrayDeque; +import java.util.Deque; import java.util.HashSet; +import java.util.Iterator; +import java.util.NoSuchElementException; import java.util.Set; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static java.lang.String.format; +import static java.util.Objects.requireNonNull; public final class GeometryUtils { @@ -325,4 +333,62 @@ public static String getGeometryInvalidReason(org.locationtech.jts.geom.Geometry } return null; } + + /** + * Recursively flatten GeometryCollection in geometry. + * + * If `geometry` is null, return an empty iterable. + * If `geometry` is not a GeometryCollection, yield a single geometry. + * (For this, MultiX is not considered a GeometryCollection.) + * Otherwise, iterate through all children of the GeometryCollection, + * recursively flattening contained GeometryCollections. + */ + public static Iterable flattenCollection(OGCGeometry geometry) + { + if (geometry == null) { + return ImmutableList.of(); + } + if (!(geometry instanceof OGCConcreteGeometryCollection)) { + return ImmutableList.of(geometry); + } + if (((OGCConcreteGeometryCollection) geometry).numGeometries() == 0) { + return ImmutableList.of(); + } + return () -> new GeometryCollectionIterator(geometry); + } + + private static class GeometryCollectionIterator + implements Iterator + { + private final Deque geometriesDeque = new ArrayDeque<>(); + + GeometryCollectionIterator(OGCGeometry geometries) + { + geometriesDeque.push(requireNonNull(geometries, "geometries is null")); + } + + @Override + public boolean hasNext() + { + if (geometriesDeque.isEmpty()) { + return false; + } + while (geometriesDeque.peek() instanceof OGCConcreteGeometryCollection) { + OGCGeometryCollection collection = (OGCGeometryCollection) geometriesDeque.pop(); + for (int i = 0; i < collection.numGeometries(); i++) { + geometriesDeque.push(collection.geometryN(i)); + } + } + return !geometriesDeque.isEmpty(); + } + + @Override + public OGCGeometry next() + { + if (!hasNext()) { + throw new NoSuchElementException("Geometries have been consumed"); + } + return geometriesDeque.pop(); + } + } } diff --git a/presto-geospatial-toolkit/src/test/java/com/facebook/presto/geospatial/TestGeometryUtils.java b/presto-geospatial-toolkit/src/test/java/com/facebook/presto/geospatial/TestGeometryUtils.java index 3b282be7b9b92..904dd236f2073 100644 --- a/presto-geospatial-toolkit/src/test/java/com/facebook/presto/geospatial/TestGeometryUtils.java +++ b/presto-geospatial-toolkit/src/test/java/com/facebook/presto/geospatial/TestGeometryUtils.java @@ -14,10 +14,16 @@ package com.facebook.presto.geospatial; import com.esri.core.geometry.ogc.OGCGeometry; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Streams; import org.locationtech.jts.geom.Envelope; import org.testng.annotations.Test; +import java.util.List; + +import static com.facebook.presto.geospatial.GeometryUtils.flattenCollection; import static com.facebook.presto.geospatial.GeometryUtils.getExtent; +import static com.google.common.collect.ImmutableList.toImmutableList; import static org.testng.Assert.assertEquals; public class TestGeometryUtils @@ -69,4 +75,49 @@ private void assertGetExtent(String wkt, Rectangle expected) { assertEquals(getExtent(OGCGeometry.fromText(wkt)), expected); } + + @Test + public void testFlattenCollection() + { + assertFlattenLeavesUnchanged(OGCGeometry.fromText("POINT EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("POINT (1 2)")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOINT EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOINT (1 2)")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOINT (1 2, 3 4)")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("LINESTRING EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("LINESTRING (1 2, 3 4)")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTILINESTRING EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTILINESTRING ((1 2, 3 4))")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTILINESTRING ((1 2, 3 4), (5 6, 7 8))")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("POLYGON EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("POLYGON ((0 0, 0 1, 1 1, 0 0))")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOLYGON EMPTY")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOLYGON (((0 0, 0 1, 1 1, 0 0)))")); + assertFlattenLeavesUnchanged(OGCGeometry.fromText("MULTIPOLYGON (((0 0, 0 1, 1 1, 0 0)), ((10 10, 10 11, 11 11, 10 10)))")); + + assertFlattens(OGCGeometry.fromText("GEOMETRYCOLLECTION EMPTY"), ImmutableList.of()); + assertFlattens(OGCGeometry.fromText("GEOMETRYCOLLECTION (POINT EMPTY)"), OGCGeometry.fromText("POINT EMPTY")); + assertFlattens(OGCGeometry.fromText("GEOMETRYCOLLECTION (POINT (0 1))"), OGCGeometry.fromText("POINT (0 1)")); + assertFlattens(OGCGeometry.fromText("GEOMETRYCOLLECTION (GEOMETRYCOLLECTION EMPTY)"), ImmutableList.of()); + assertFlattens( + OGCGeometry.fromText("GEOMETRYCOLLECTION (GEOMETRYCOLLECTION (POINT (0 1), POINT (1 2)))"), + ImmutableList.of(OGCGeometry.fromText("POINT (0 1)"), OGCGeometry.fromText("POINT (1 2)"))); + } + + private void assertFlattenLeavesUnchanged(OGCGeometry original) + { + assertFlattens(original, original); + } + + private void assertFlattens(OGCGeometry original, OGCGeometry expected) + { + assertFlattens(original, ImmutableList.of(expected)); + } + + private void assertFlattens(OGCGeometry original, List expected) + { + List expectedWkts = expected.stream().map(g -> g.toString()).sorted().collect(toImmutableList()); + List result = Streams.stream(flattenCollection(original)).map(g -> g.toString()).sorted().collect(toImmutableList()); + assertEquals(result, expectedWkts); + } } diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java index 7d6a7d0a50d49..6bd1fa960bf38 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java @@ -23,7 +23,6 @@ import com.esri.core.geometry.Polyline; import com.esri.core.geometry.ogc.OGCConcreteGeometryCollection; import com.esri.core.geometry.ogc.OGCGeometry; -import com.esri.core.geometry.ogc.OGCGeometryCollection; import com.esri.core.geometry.ogc.OGCLineString; import com.facebook.presto.geospatial.GeometryType; import com.facebook.presto.geospatial.KdbTree; @@ -57,9 +56,7 @@ import org.locationtech.jts.geom.impl.PackedCoordinateSequenceFactory; import org.locationtech.jts.linearref.LengthIndexedLine; -import java.util.ArrayDeque; import java.util.ArrayList; -import java.util.Deque; import java.util.EnumSet; import java.util.Iterator; import java.util.List; @@ -88,6 +85,7 @@ import static com.facebook.presto.geospatial.GeometryUtils.createJtsLineString; import static com.facebook.presto.geospatial.GeometryUtils.createJtsMultiPoint; import static com.facebook.presto.geospatial.GeometryUtils.createJtsPoint; +import static com.facebook.presto.geospatial.GeometryUtils.flattenCollection; import static com.facebook.presto.geospatial.GeometryUtils.getGeometryInvalidReason; import static com.facebook.presto.geospatial.GeometryUtils.getPointCount; import static com.facebook.presto.geospatial.GeometryUtils.jtsGeometryFromWkt; @@ -1299,53 +1297,4 @@ public Slice next() } }; } - - private static Iterable flattenCollection(OGCGeometry geometry) - { - if (geometry == null) { - return ImmutableList.of(); - } - if (!(geometry instanceof OGCConcreteGeometryCollection)) { - return ImmutableList.of(geometry); - } - if (((OGCConcreteGeometryCollection) geometry).numGeometries() == 0) { - return ImmutableList.of(); - } - return () -> new GeometryCollectionIterator(geometry); - } - - private static class GeometryCollectionIterator - implements Iterator - { - private final Deque geometriesDeque = new ArrayDeque<>(); - - GeometryCollectionIterator(OGCGeometry geometries) - { - geometriesDeque.push(requireNonNull(geometries, "geometries is null")); - } - - @Override - public boolean hasNext() - { - if (geometriesDeque.isEmpty()) { - return false; - } - while (geometriesDeque.peek() instanceof OGCConcreteGeometryCollection) { - OGCGeometryCollection collection = (OGCGeometryCollection) geometriesDeque.pop(); - for (int i = 0; i < collection.numGeometries(); i++) { - geometriesDeque.push(collection.geometryN(i)); - } - } - return !geometriesDeque.isEmpty(); - } - - @Override - public OGCGeometry next() - { - if (!hasNext()) { - throw new NoSuchElementException("Geometries have been consumed"); - } - return geometriesDeque.pop(); - } - } } From 22a421bb426ca9fc848c8b37ecc37bdfe8872ca0 Mon Sep 17 00:00:00 2001 From: Ying Su Date: Mon, 20 Apr 2020 18:21:17 -0700 Subject: [PATCH 009/129] Remove unused code from TestRowBasedSerialization#testRandomBlocks --- .../facebook/presto/block/TestRowBasedSerialization.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java index 96eb9818ac722..a98875bd5dbd4 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java @@ -252,14 +252,6 @@ private static void testRandomBlocks(Type type, List wrappings) assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 27, 0.5f, 0, false, wrappings))); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 22, 0, 0.5f, false, wrappings))); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 28, 0.5f, 0.5f, false, wrappings))); - -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 10, false, false, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 11, false, false, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 20, true, false, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 33, false, false, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 27, true, false, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 22, false, true, wrappings))); -// assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 28, true, true, wrappings))); } private static void assertRoundTrip(List types, List blocks) From ab241b8443c7ba6102f93de836fde9c43724f37d Mon Sep 17 00:00:00 2001 From: James Petty Date: Wed, 15 Apr 2020 10:47:22 -0400 Subject: [PATCH 010/129] Refactor AWS SDK Client Metrics Collection Adds a parent abstract class to PrestoS3FileSystemMetricsCollector so that other SDK clients can share the metrics collector support. Adds reporting for client retry pause time indicating how long the thread was asleep between request retries in the client itself. Fixes the reporting client timings. Previously, when the client retried a request only the first request timings would be recorded in the stats. Now, all request timings are reported individually. --- .../hive/aws/AbstractSdkMetricsCollector.java | 86 +++++++++++++++++++ .../s3/PrestoS3FileSystemMetricCollector.java | 65 +++++++------- .../hive/s3/PrestoS3FileSystemStats.java | 13 +++ 3 files changed, 128 insertions(+), 36 deletions(-) create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/aws/AbstractSdkMetricsCollector.java diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/aws/AbstractSdkMetricsCollector.java b/presto-hive/src/main/java/com/facebook/presto/hive/aws/AbstractSdkMetricsCollector.java new file mode 100644 index 0000000000000..e1dc61fde634f --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/aws/AbstractSdkMetricsCollector.java @@ -0,0 +1,86 @@ +/* + * 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 com.facebook.presto.hive.aws; + +import com.amazonaws.Request; +import com.amazonaws.Response; +import com.amazonaws.metrics.RequestMetricCollector; +import com.amazonaws.util.AWSRequestMetrics; +import com.amazonaws.util.TimingInfo; +import io.airlift.units.Duration; + +import java.util.List; +import java.util.function.Consumer; + +import static com.amazonaws.util.AWSRequestMetrics.Field.ClientExecuteTime; +import static com.amazonaws.util.AWSRequestMetrics.Field.HttpClientRetryCount; +import static com.amazonaws.util.AWSRequestMetrics.Field.HttpRequestTime; +import static com.amazonaws.util.AWSRequestMetrics.Field.RequestCount; +import static com.amazonaws.util.AWSRequestMetrics.Field.RetryPauseTime; +import static com.amazonaws.util.AWSRequestMetrics.Field.ThrottleException; +import static java.util.concurrent.TimeUnit.MILLISECONDS; + +public abstract class AbstractSdkMetricsCollector + extends RequestMetricCollector +{ + @Override + public final void collectMetrics(Request request, Response response) + { + TimingInfo timingInfo = request.getAWSRequestMetrics().getTimingInfo(); + + Number requestCounts = timingInfo.getCounter(RequestCount.name()); + if (requestCounts != null) { + recordRequestCount(requestCounts.longValue()); + } + + Number retryCounts = timingInfo.getCounter(HttpClientRetryCount.name()); + if (retryCounts != null) { + recordRetryCount(retryCounts.longValue()); + } + + Number throttleExceptions = timingInfo.getCounter(ThrottleException.name()); + if (throttleExceptions != null) { + recordThrottleExceptionCount(throttleExceptions.longValue()); + } + + recordSubTimingDurations(timingInfo, HttpRequestTime, this::recordHttpRequestTime); + recordSubTimingDurations(timingInfo, ClientExecuteTime, this::recordClientExecutionTime); + recordSubTimingDurations(timingInfo, RetryPauseTime, this::recordRetryPauseTime); + } + + protected abstract void recordRequestCount(long count); + + protected abstract void recordRetryCount(long count); + + protected abstract void recordThrottleExceptionCount(long count); + + protected abstract void recordHttpRequestTime(Duration duration); + + protected abstract void recordClientExecutionTime(Duration duration); + + protected abstract void recordRetryPauseTime(Duration duration); + + private static void recordSubTimingDurations(TimingInfo timingInfo, AWSRequestMetrics.Field field, Consumer consumer) + { + List subTimings = timingInfo.getAllSubMeasurements(field.name()); + if (subTimings != null) { + for (TimingInfo subTiming : subTimings) { + Double millis = subTiming.getTimeTakenMillisIfKnown(); + if (millis != null) { + consumer.accept(new Duration(millis, MILLISECONDS)); + } + } + } + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemMetricCollector.java b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemMetricCollector.java index 4f4a2360b0137..97c5fe0c220ba 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemMetricCollector.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemMetricCollector.java @@ -13,23 +13,13 @@ */ package com.facebook.presto.hive.s3; -import com.amazonaws.Request; -import com.amazonaws.Response; -import com.amazonaws.metrics.RequestMetricCollector; -import com.amazonaws.util.AWSRequestMetrics; -import com.amazonaws.util.TimingInfo; +import com.facebook.presto.hive.aws.AbstractSdkMetricsCollector; import io.airlift.units.Duration; -import static com.amazonaws.util.AWSRequestMetrics.Field.ClientExecuteTime; -import static com.amazonaws.util.AWSRequestMetrics.Field.HttpClientRetryCount; -import static com.amazonaws.util.AWSRequestMetrics.Field.HttpRequestTime; -import static com.amazonaws.util.AWSRequestMetrics.Field.RequestCount; -import static com.amazonaws.util.AWSRequestMetrics.Field.ThrottleException; import static java.util.Objects.requireNonNull; -import static java.util.concurrent.TimeUnit.MILLISECONDS; public class PrestoS3FileSystemMetricCollector - extends RequestMetricCollector + extends AbstractSdkMetricsCollector { private final PrestoS3FileSystemStats stats; @@ -39,35 +29,38 @@ public PrestoS3FileSystemMetricCollector(PrestoS3FileSystemStats stats) } @Override - public void collectMetrics(Request request, Response response) + protected void recordRequestCount(long count) { - AWSRequestMetrics metrics = request.getAWSRequestMetrics(); - - TimingInfo timingInfo = metrics.getTimingInfo(); - Number requestCounts = timingInfo.getCounter(RequestCount.name()); - Number retryCounts = timingInfo.getCounter(HttpClientRetryCount.name()); - Number throttleExceptions = timingInfo.getCounter(ThrottleException.name()); - TimingInfo requestTime = timingInfo.getSubMeasurement(HttpRequestTime.name()); - TimingInfo clientExecuteTime = timingInfo.getSubMeasurement(ClientExecuteTime.name()); + stats.updateAwsRequestCount(count); + } - if (requestCounts != null) { - stats.updateAwsRequestCount(requestCounts.longValue()); - } + @Override + protected void recordRetryCount(long count) + { + stats.updateAwsRetryCount(count); + } - if (retryCounts != null) { - stats.updateAwsRetryCount(retryCounts.longValue()); - } + @Override + protected void recordThrottleExceptionCount(long count) + { + stats.updateAwsThrottleExceptionsCount(count); + } - if (throttleExceptions != null) { - stats.updateAwsThrottleExceptionsCount(throttleExceptions.longValue()); - } + @Override + protected void recordHttpRequestTime(Duration duration) + { + stats.addAwsRequestTime(duration); + } - if (requestTime != null && requestTime.getTimeTakenMillisIfKnown() != null) { - stats.addAwsRequestTime(new Duration(requestTime.getTimeTakenMillisIfKnown(), MILLISECONDS)); - } + @Override + protected void recordClientExecutionTime(Duration duration) + { + stats.addAwsClientExecuteTime(duration); + } - if (clientExecuteTime != null && clientExecuteTime.getTimeTakenMillisIfKnown() != null) { - stats.addAwsClientExecuteTime(new Duration(clientExecuteTime.getTimeTakenMillisIfKnown(), MILLISECONDS)); - } + @Override + protected void recordRetryPauseTime(Duration duration) + { + stats.addAwsClientRetryPauseTime(duration); } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemStats.java b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemStats.java index 5b6d0af285687..880182aba154f 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemStats.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3FileSystemStats.java @@ -51,6 +51,7 @@ public class PrestoS3FileSystemStats private final CounterStat awsThrottleExceptions = new CounterStat(); private final TimeStat awsRequestTime = new TimeStat(MILLISECONDS); private final TimeStat awsClientExecuteTime = new TimeStat(MILLISECONDS); + private final TimeStat awsClientRetryPauseTime = new TimeStat(MILLISECONDS); @Managed @Nested @@ -185,6 +186,13 @@ public TimeStat getAwsClientExecuteTime() return awsClientExecuteTime; } + @Managed + @Nested + public TimeStat getAwsClientRetryPauseTime() + { + return awsClientRetryPauseTime; + } + @Managed @Nested public CounterStat getGetObjectRetries() @@ -302,6 +310,11 @@ public void addAwsClientExecuteTime(Duration duration) awsClientExecuteTime.add(duration); } + public void addAwsClientRetryPauseTime(Duration duration) + { + awsClientRetryPauseTime.add(duration); + } + public void newGetObjectRetry() { getObjectRetries.update(1); From b61e0b698a0722a312e36eedba6a120c3c5d6e1f Mon Sep 17 00:00:00 2001 From: James Petty Date: Wed, 15 Apr 2020 10:48:51 -0400 Subject: [PATCH 011/129] Use shared metrics collector in PestoS3ClientFactory Previously, an instance of PrestoS3FileSystemStats instance was created in PrestoS3ClientFactory which means it would not report S3 client stats to the instance registered with JMX. This would only have affected PrestoS3Select clients. Now the same metric instance is shared with PrestoS3FileSystem --- .../com/facebook/presto/hive/s3/PrestoS3ClientFactory.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java index 9d4e1fa832df4..37102d6be6e67 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/s3/PrestoS3ClientFactory.java @@ -21,7 +21,6 @@ import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.auth.InstanceProfileCredentialsProvider; -import com.amazonaws.metrics.RequestMetricCollector; import com.amazonaws.regions.Region; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; @@ -96,13 +95,11 @@ synchronized AmazonS3 getS3Client(Configuration config, HiveClientConfig clientC .withUserAgentPrefix(userAgentPrefix) .withUserAgentSuffix(s3UserAgentSuffix); - PrestoS3FileSystemStats stats = new PrestoS3FileSystemStats(); - RequestMetricCollector metricCollector = new PrestoS3FileSystemMetricCollector(stats); AWSCredentialsProvider awsCredentialsProvider = getAwsCredentialsProvider(config, defaults); AmazonS3Builder clientBuilder = AmazonS3Client.builder() .withCredentials(awsCredentialsProvider) .withClientConfiguration(clientConfiguration) - .withMetricsCollector(metricCollector) + .withMetricsCollector(new PrestoS3FileSystemMetricCollector(PrestoS3FileSystem.getFileSystemStats())) .enablePathStyleAccess(); boolean regionOrEndpointSet = false; From 90e74057d960665351529af8e2bc582947f2884e Mon Sep 17 00:00:00 2001 From: Leiqing Cai Date: Tue, 4 Feb 2020 18:21:50 -0800 Subject: [PATCH 012/129] Display built-in functions first in SHOW FUNCTIONS In SHOW FUNCTIONS results, list the built-in functions first, and then the SQL functions, in alphabetical order of the qualified function names. --- .../sql/rewrite/ShowQueriesRewrite.java | 2 ++ .../com/facebook/presto/sql/QueryUtil.java | 5 ++++ .../presto/tests/TestSqlFunctions.java | 25 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java index db0d132ab4122..f601d62fbecec 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java @@ -105,6 +105,7 @@ import static com.facebook.presto.sql.QueryUtil.aliasedName; import static com.facebook.presto.sql.QueryUtil.aliasedNullToEmpty; import static com.facebook.presto.sql.QueryUtil.ascending; +import static com.facebook.presto.sql.QueryUtil.descending; import static com.facebook.presto.sql.QueryUtil.equal; import static com.facebook.presto.sql.QueryUtil.functionCall; import static com.facebook.presto.sql.QueryUtil.identifier; @@ -562,6 +563,7 @@ protected Node visitShowFunctions(ShowFunctions node, Void context) .collect(toImmutableList())), aliased(new Values(rows.build()), "functions", ImmutableList.copyOf(columns.keySet())), ordering( + descending("built_in"), new SortItem( functionCall("lower", identifier("function_name")), SortItem.Ordering.ASCENDING, diff --git a/presto-parser/src/main/java/com/facebook/presto/sql/QueryUtil.java b/presto-parser/src/main/java/com/facebook/presto/sql/QueryUtil.java index 2cc98cec157b6..64f80d2677666 100644 --- a/presto-parser/src/main/java/com/facebook/presto/sql/QueryUtil.java +++ b/presto-parser/src/main/java/com/facebook/presto/sql/QueryUtil.java @@ -112,6 +112,11 @@ public static SortItem ascending(String name) return new SortItem(identifier(name), SortItem.Ordering.ASCENDING, SortItem.NullOrdering.UNDEFINED); } + public static SortItem descending(String name) + { + return new SortItem(identifier(name), SortItem.Ordering.DESCENDING, SortItem.NullOrdering.UNDEFINED); + } + public static Expression logicalAnd(Expression left, Expression right) { return new LogicalBinaryExpression(LogicalBinaryExpression.Operator.AND, left, right); diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java index 6da309b248ffe..5cf10377b8f50 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java @@ -14,6 +14,7 @@ package com.facebook.presto.tests; import com.facebook.presto.Session; +import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.testing.QueryRunner; import com.google.common.collect.ImmutableList; @@ -27,6 +28,7 @@ import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; +import static org.testng.Assert.assertEquals; @Test(singleThreaded = true) public class TestSqlFunctions @@ -136,4 +138,27 @@ public void testSqlFunctions() "RETURN concat(a, array[x])"); assertQuery("SELECT testing.common.array_append(ARRAY[1, 2, 4], 8)", "SELECT ARRAY[1, 2, 4, 8]"); } + + @Test + public void testShowFunctions() + { + MaterializedResult initial = computeActual("SHOW FUNCTIONS"); + + assertQuerySucceeds("CREATE FUNCTION testing.common.d() RETURNS int RETURN 1"); + assertQuerySucceeds("CREATE FUNCTION testing.test.c() RETURNS int RETURN 1"); + assertQuerySucceeds("CREATE FUNCTION example.example.b() RETURNS int RETURN 1"); + assertQuerySucceeds("CREATE FUNCTION testing.common.a() RETURNS int RETURN 1"); + MaterializedResult expanded = computeActual("SHOW FUNCTIONS"); + int rowCount = expanded.getRowCount(); + + assertEquals(rowCount, initial.getRowCount() + 4); + assertEquals(expanded.getMaterializedRows().subList(0, rowCount - 4), initial.getMaterializedRows()); + + List functionNames = expanded.getMaterializedRows().subList(rowCount - 4, rowCount).stream() + .map(MaterializedRow::getFields) + .map(list -> list.get(0)) + .map(String.class::cast) + .collect(toImmutableList()); + assertEquals(functionNames, ImmutableList.of("example.example.b", "testing.common.a", "testing.common.d", "testing.test.c")); + } } From 25fe380c3305b0d744abe252dbebaa6e5405382e Mon Sep 17 00:00:00 2001 From: Tim Meehan Date: Sat, 18 Apr 2020 19:29:09 -0700 Subject: [PATCH 013/129] Fix QueryResource for queued queries --- .../presto/dispatcher/DispatchManager.java | 5 + .../dispatcher/FailedDispatchQuery.java | 15 ++- .../presto/dispatcher/LocalDispatchQuery.java | 9 ++ .../execution/ManagedQueryExecution.java | 2 + .../facebook/presto/execution/QueryInfo.java | 40 ++++++ .../presto/execution/QueryStateMachine.java | 4 +- .../facebook/presto/execution/QueryStats.java | 56 +++++++++ .../presto/server/BasicQueryInfo.java | 23 ---- .../presto/server/BasicQueryStats.java | 32 ----- .../facebook/presto/server/QueryResource.java | 2 +- .../execution/MockManagedQueryExecution.java | 115 ++++++++++++------ presto-tests/pom.xml | 15 +++ .../facebook/presto/execution/TestQueues.java | 59 +++++++++ 13 files changed, 280 insertions(+), 97 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java index 85fc68637c0c4..53dfd7e53fde4 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java @@ -271,6 +271,11 @@ public BasicQueryInfo getQueryInfo(QueryId queryId) return queryTracker.getQuery(queryId).getBasicQueryInfo(); } + public QueryInfo getFullQueryInfo(QueryId queryId) + { + return queryTracker.getQuery(queryId).getQueryInfo(); + } + public Optional getDispatchInfo(QueryId queryId) { return queryTracker.tryGetQuery(queryId) diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/FailedDispatchQuery.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/FailedDispatchQuery.java index 321c7b52f9816..ebd70cce0737a 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/FailedDispatchQuery.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/FailedDispatchQuery.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.execution.ExecutionFailureInfo; +import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryState; import com.facebook.presto.execution.StateMachine.StateChangeListener; import com.facebook.presto.server.BasicQueryInfo; @@ -30,8 +31,8 @@ import java.util.Optional; import java.util.concurrent.Executor; +import static com.facebook.presto.execution.QueryInfo.immediateFailureQueryInfo; import static com.facebook.presto.execution.QueryState.FAILED; -import static com.facebook.presto.server.BasicQueryInfo.immediateFailureQueryInfo; import static com.google.common.util.concurrent.Futures.immediateFuture; import static io.airlift.units.DataSize.Unit.BYTE; import static java.util.Objects.requireNonNull; @@ -40,7 +41,8 @@ public class FailedDispatchQuery implements DispatchQuery { - private final BasicQueryInfo queryInfo; + private final QueryInfo queryInfo; + private final BasicQueryInfo basicQueryInfo; private final Session session; private final Executor executor; private final DispatchInfo dispatchInfo; @@ -60,7 +62,8 @@ public FailedDispatchQuery( requireNonNull(failure, "failure is null"); requireNonNull(executor, "executor is null"); - this.queryInfo = immediateFailureQueryInfo(session, query, self, resourceGroup, failure.getErrorCode()); + this.queryInfo = immediateFailureQueryInfo(session, query, self, resourceGroup, failure); + this.basicQueryInfo = new BasicQueryInfo(queryInfo); this.session = requireNonNull(session, "session is null"); this.executor = requireNonNull(executor, "executor is null"); @@ -72,6 +75,12 @@ public FailedDispatchQuery( @Override public BasicQueryInfo getBasicQueryInfo() + { + return basicQueryInfo; + } + + @Override + public QueryInfo getQueryInfo() { return queryInfo; } diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/LocalDispatchQuery.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/LocalDispatchQuery.java index d50420171a1fc..d495abc8b0b9f 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/LocalDispatchQuery.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/LocalDispatchQuery.java @@ -18,6 +18,7 @@ import com.facebook.presto.execution.ClusterSizeMonitor; import com.facebook.presto.execution.ExecutionFailureInfo; import com.facebook.presto.execution.QueryExecution; +import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryState; import com.facebook.presto.execution.QueryStateMachine; import com.facebook.presto.execution.StateMachine.StateChangeListener; @@ -221,6 +222,14 @@ public BasicQueryInfo getBasicQueryInfo() .orElse(stateMachine.getBasicQueryInfo(Optional.empty())); } + @Override + public QueryInfo getQueryInfo() + { + return tryGetQueryExecution() + .map(QueryExecution::getQueryInfo) + .orElse(stateMachine.getQueryInfo(Optional.empty())); + } + @Override public Session getSession() { diff --git a/presto-main/src/main/java/com/facebook/presto/execution/ManagedQueryExecution.java b/presto-main/src/main/java/com/facebook/presto/execution/ManagedQueryExecution.java index b23b834c32dcb..4e8cba714496b 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/ManagedQueryExecution.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/ManagedQueryExecution.java @@ -45,6 +45,8 @@ public interface ManagedQueryExecution BasicQueryInfo getBasicQueryInfo(); + QueryInfo getQueryInfo(); + boolean isDone(); /** diff --git a/presto-main/src/main/java/com/facebook/presto/execution/QueryInfo.java b/presto-main/src/main/java/com/facebook/presto/execution/QueryInfo.java index 4d56762c1dd04..0bbb911fe00d7 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/QueryInfo.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/QueryInfo.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.Session; import com.facebook.presto.SessionRepresentation; import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.ErrorType; @@ -38,7 +39,10 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.execution.QueryState.FAILED; +import static com.facebook.presto.execution.QueryStats.immediateFailureQueryStats; import static com.facebook.presto.execution.StageInfo.getAllStages; +import static com.facebook.presto.memory.LocalMemoryManager.GENERAL_POOL; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; @@ -163,6 +167,42 @@ public QueryInfo( this.failedTasks = failedTasks; } + public static QueryInfo immediateFailureQueryInfo(Session session, String query, URI self, Optional resourceGroupId, ExecutionFailureInfo failureCause) + { + QueryInfo queryInfo = new QueryInfo( + session.getQueryId(), + session.toSessionRepresentation(), + FAILED, + GENERAL_POOL, + false, + self, + ImmutableList.of(), + query, + immediateFailureQueryStats(), + Optional.empty(), + Optional.empty(), + ImmutableMap.of(), + ImmutableSet.of(), + ImmutableMap.of(), + ImmutableMap.of(), + ImmutableSet.of(), + Optional.empty(), + false, + null, + Optional.empty(), + failureCause.getCause(), + failureCause.getErrorCode(), + ImmutableList.of(), + ImmutableSet.of(), + Optional.empty(), + false, + resourceGroupId, + Optional.empty(), + Optional.empty()); + + return queryInfo; + } + @JsonProperty public QueryId getQueryId() { diff --git a/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java b/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java index 82cabc0d23bce..98410c8c9e9c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java @@ -38,7 +38,6 @@ import com.facebook.presto.transaction.TransactionId; import com.facebook.presto.transaction.TransactionInfo; import com.facebook.presto.transaction.TransactionManager; -import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Ticker; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -388,8 +387,7 @@ public BasicQueryInfo getBasicQueryInfo(Optional rootS warningCollector.getWarnings()); } - @VisibleForTesting - QueryInfo getQueryInfo(Optional rootStage) + public QueryInfo getQueryInfo(Optional rootStage) { // Query state must be captured first in order to provide a // correct view of the query. For example, building this diff --git a/presto-main/src/main/java/com/facebook/presto/execution/QueryStats.java b/presto-main/src/main/java/com/facebook/presto/execution/QueryStats.java index 7db1488b50567..84f7a509a4837 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/QueryStats.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/QueryStats.java @@ -31,9 +31,11 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; +import static io.airlift.units.DataSize.Unit.BYTE; import static io.airlift.units.DataSize.succinctBytes; import static java.lang.Math.min; import static java.util.Objects.requireNonNull; +import static java.util.concurrent.TimeUnit.MILLISECONDS; public class QueryStats { @@ -238,6 +240,60 @@ public QueryStats( this.operatorSummaries = ImmutableList.copyOf(requireNonNull(operatorSummaries, "operatorSummaries is null")); } + public static QueryStats immediateFailureQueryStats() + { + DateTime now = DateTime.now(); + return new QueryStats( + now, + now, + now, + now, + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + new DataSize(0, BYTE), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + false, + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + new Duration(0, MILLISECONDS), + false, + ImmutableSet.of(), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + 0, + new DataSize(0, BYTE), + 0, + new DataSize(0, BYTE), + 0, + 0, + new DataSize(0, BYTE), + new DataSize(0, BYTE), + new DataSize(0, BYTE), + ImmutableList.of(), + ImmutableList.of()); + } + @JsonProperty public DateTime getCreateTime() { diff --git a/presto-main/src/main/java/com/facebook/presto/server/BasicQueryInfo.java b/presto-main/src/main/java/com/facebook/presto/server/BasicQueryInfo.java index 6ecb19bbb7512..0927bb175e117 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/BasicQueryInfo.java +++ b/presto-main/src/main/java/com/facebook/presto/server/BasicQueryInfo.java @@ -13,7 +13,6 @@ */ package com.facebook.presto.server; -import com.facebook.presto.Session; import com.facebook.presto.SessionRepresentation; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryState; @@ -26,7 +25,6 @@ import com.facebook.presto.spi.resourceGroups.ResourceGroupId; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.collect.ImmutableList; import javax.annotation.Nullable; import javax.annotation.concurrent.Immutable; @@ -35,9 +33,6 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.execution.QueryState.FAILED; -import static com.facebook.presto.memory.LocalMemoryManager.GENERAL_POOL; -import static com.facebook.presto.server.BasicQueryStats.immediateFailureQueryStats; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; @@ -110,24 +105,6 @@ public BasicQueryInfo(QueryInfo queryInfo) queryInfo.getWarnings()); } - public static BasicQueryInfo immediateFailureQueryInfo(Session session, String query, URI self, Optional resourceGroupId, ErrorCode errorCode) - { - return new BasicQueryInfo( - session.getQueryId(), - session.toSessionRepresentation(), - resourceGroupId, - FAILED, - GENERAL_POOL, - false, - self, - query, - immediateFailureQueryStats(), - errorCode == null ? null : errorCode.getType(), - errorCode, - Optional.empty(), - ImmutableList.of()); - } - @JsonProperty public QueryId getQueryId() { diff --git a/presto-main/src/main/java/com/facebook/presto/server/BasicQueryStats.java b/presto-main/src/main/java/com/facebook/presto/server/BasicQueryStats.java index 7f43c18dba262..3cf6056492725 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/BasicQueryStats.java +++ b/presto-main/src/main/java/com/facebook/presto/server/BasicQueryStats.java @@ -28,9 +28,7 @@ import java.util.Set; import static com.google.common.base.Preconditions.checkArgument; -import static io.airlift.units.DataSize.Unit.BYTE; import static java.util.Objects.requireNonNull; -import static java.util.concurrent.TimeUnit.MILLISECONDS; /** * Lightweight version of QueryStats. Parts of the web UI depend on the fields @@ -165,36 +163,6 @@ public BasicQueryStats(QueryStats queryStats) queryStats.getProgressPercentage()); } - public static BasicQueryStats immediateFailureQueryStats() - { - DateTime now = DateTime.now(); - return new BasicQueryStats( - now, - now, - new Duration(0, MILLISECONDS), - new Duration(0, MILLISECONDS), - new Duration(0, MILLISECONDS), - 0, - 0, - 0, - 0, - 0, - new DataSize(0, BYTE), - 0, - 0, - new DataSize(0, BYTE), - new DataSize(0, BYTE), - new DataSize(0, BYTE), - new DataSize(0, BYTE), - new DataSize(0, BYTE), - new Duration(0, MILLISECONDS), - new Duration(0, MILLISECONDS), - false, - ImmutableSet.of(), - new DataSize(0, BYTE), - OptionalDouble.empty()); - } - @JsonProperty public DateTime getCreateTime() { diff --git a/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java b/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java index b3f56789657bc..c0b69dacc7e00 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java @@ -77,7 +77,7 @@ public Response getQueryInfo(@PathParam("queryId") QueryId queryId) requireNonNull(queryId, "queryId is null"); try { - QueryInfo queryInfo = queryManager.getFullQueryInfo(queryId); + QueryInfo queryInfo = dispatchManager.getFullQueryInfo(queryId); return Response.ok(queryInfo).build(); } catch (NoSuchElementException e) { diff --git a/presto-main/src/test/java/com/facebook/presto/execution/MockManagedQueryExecution.java b/presto-main/src/test/java/com/facebook/presto/execution/MockManagedQueryExecution.java index c9faa79e6d4dd..85163d36d7b04 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/MockManagedQueryExecution.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/MockManagedQueryExecution.java @@ -16,11 +16,11 @@ import com.facebook.presto.Session; import com.facebook.presto.execution.StateMachine.StateChangeListener; import com.facebook.presto.server.BasicQueryInfo; -import com.facebook.presto.server.BasicQueryStats; import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.memory.MemoryPoolId; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import io.airlift.units.DataSize; import io.airlift.units.Duration; @@ -30,18 +30,17 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import java.util.OptionalDouble; +import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.SystemSessionProperties.QUERY_PRIORITY; import static com.facebook.presto.execution.QueryState.FAILED; import static com.facebook.presto.execution.QueryState.FINISHED; import static com.facebook.presto.execution.QueryState.QUEUED; import static com.facebook.presto.execution.QueryState.RUNNING; +import static com.facebook.presto.operator.BlockedReason.WAITING_FOR_MEMORY; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; -import static io.airlift.units.DataSize.Unit.BYTE; import static io.airlift.units.DataSize.succinctBytes; import static java.util.concurrent.TimeUnit.MILLISECONDS; -import static java.util.concurrent.TimeUnit.NANOSECONDS; public class MockManagedQueryExecution implements ManagedQueryExecution @@ -98,44 +97,90 @@ public Optional getErrorCode() @Override public BasicQueryInfo getBasicQueryInfo() { - return new BasicQueryInfo( + return new BasicQueryInfo(getQueryInfo()); + } + + @Override + public QueryInfo getQueryInfo() + { + return new QueryInfo( new QueryId("test"), - session.toSessionRepresentation(), - Optional.empty(), + TEST_SESSION.toSessionRepresentation(), state, - new MemoryPoolId("test"), - !state.isDone(), - URI.create("http://test"), + new MemoryPoolId("reserved"), + true, + URI.create("1"), + ImmutableList.of("2", "3"), "SELECT 1", - new BasicQueryStats( - new DateTime(1), - new DateTime(2), - new Duration(3, NANOSECONDS), - new Duration(4, NANOSECONDS), - new Duration(5, NANOSECONDS), - 5, - 6, - 7, - 8, - 9, - new DataSize(14, BYTE), + new QueryStats( + DateTime.parse("1991-09-06T05:00-05:30"), + DateTime.parse("1991-09-06T05:01-05:30"), + DateTime.parse("1991-09-06T05:02-05:30"), + DateTime.parse("1991-09-06T06:00-05:30"), + Duration.valueOf("8m"), + Duration.valueOf("7m"), + Duration.valueOf("34m"), + Duration.valueOf("35m"), + Duration.valueOf("44m"), + Duration.valueOf("9m"), + Duration.valueOf("10m"), + Duration.valueOf("11m"), + 13, + 14, 15, - 16.0, - new DataSize(17, BYTE), - new DataSize(18, BYTE), - new DataSize(19, BYTE), - new DataSize(20, BYTE), - new DataSize(21, BYTE), - new Duration(22, NANOSECONDS), - new Duration(23, NANOSECONDS), - false, - ImmutableSet.of(), - new DataSize(24, BYTE), - OptionalDouble.empty()), + 16, + 100, + 17, + 18, + 34, + 19, + 20.0, + DataSize.valueOf("21GB"), + DataSize.valueOf("22GB"), + DataSize.valueOf("23GB"), + DataSize.valueOf("24GB"), + DataSize.valueOf("25GB"), + DataSize.valueOf("26GB"), + true, + Duration.valueOf("23m"), + Duration.valueOf("24m"), + Duration.valueOf("0m"), + Duration.valueOf("26m"), + true, + ImmutableSet.of(WAITING_FOR_MEMORY), + DataSize.valueOf("123MB"), + DataSize.valueOf("27GB"), + 28, + DataSize.valueOf("29GB"), + 30, + DataSize.valueOf("31GB"), + 32, + 33, + DataSize.valueOf("34GB"), + DataSize.valueOf("35GB"), + DataSize.valueOf("36GB"), + ImmutableList.of(), + ImmutableList.of()), + Optional.empty(), + Optional.empty(), + ImmutableMap.of(), + ImmutableSet.of(), + ImmutableMap.of(), + ImmutableMap.of(), + ImmutableSet.of(), + Optional.empty(), + false, + "33", + Optional.empty(), null, null, + ImmutableList.of(), + ImmutableSet.of(), + Optional.empty(), + false, + Optional.empty(), Optional.empty(), - ImmutableList.of()); + Optional.empty()); } @Override diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index 3f6ba6678c892..c9c76ee4f5117 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -189,6 +189,21 @@ runtime + + com.facebook.airlift + http-client + + + + com.fasterxml.jackson.core + jackson-databind + + + + javax.ws.rs + javax.ws.rs-api + + com.facebook.airlift diff --git a/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java b/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java index 13d04a45d3b92..f6c4a87bb4307 100644 --- a/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java +++ b/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java @@ -13,14 +13,23 @@ */ package com.facebook.presto.execution; +import com.facebook.airlift.http.client.HttpClient; +import com.facebook.airlift.http.client.Request; +import com.facebook.airlift.http.client.jetty.JettyHttpClient; +import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.Session; import com.facebook.presto.dispatcher.DispatchManager; import com.facebook.presto.resourceGroups.ResourceGroupManagerPlugin; import com.facebook.presto.spi.QueryId; +import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.resourceGroups.ResourceGroupId; import com.facebook.presto.spi.session.ResourceEstimates; +import com.facebook.presto.sql.Serialization; import com.facebook.presto.tests.DistributedQueryRunner; import com.facebook.presto.tests.tpch.TpchQueryRunnerBuilder; +import com.facebook.presto.type.TypeRegistry; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -30,9 +39,12 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import java.io.IOException; import java.util.Optional; import java.util.Set; +import static com.facebook.airlift.http.client.Request.Builder.prepareGet; +import static com.facebook.airlift.http.client.StringResponseHandler.createStringResponseHandler; import static com.facebook.airlift.testing.Closeables.closeQuietly; import static com.facebook.presto.SystemSessionProperties.HASH_PARTITION_COUNT; import static com.facebook.presto.execution.QueryState.FAILED; @@ -49,6 +61,7 @@ import static java.util.Arrays.asList; import static java.util.Objects.requireNonNull; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; // run single threaded to avoid creating multiple query runners at once @@ -58,17 +71,27 @@ public class TestQueues public static final String LONG_LASTING_QUERY = "SELECT COUNT(*) FROM lineitem"; private DistributedQueryRunner queryRunner; + private ObjectMapper objectMapper; + private HttpClient client; @BeforeMethod public void setup() throws Exception { queryRunner = createQueryRunner(); + client = new JettyHttpClient(); + objectMapper = new ObjectMapperProvider().get(); + objectMapper.registerModule(new SimpleModule() { + { + addKeyDeserializer(VariableReferenceExpression.class, new Serialization.VariableReferenceExpressionDeserializer(new TypeRegistry())); + } + }); } @AfterMethod(alwaysRun = true) public void tearDown() { + closeQuietly(client); closeQuietly(queryRunner); queryRunner = null; } @@ -298,6 +321,33 @@ public void testQueryTypeBasedSelection() } } + @Test(timeOut = 240_000) + public void testQueuedQueryInfo() + throws Exception + { + queryRunner.installPlugin(new ResourceGroupManagerPlugin()); + queryRunner.getCoordinator().getResourceGroupManager().get().setConfigurationManager("file", ImmutableMap.of("resource-groups.config-file", getResourceFilePath("resource_groups_config_dashboard.json"))); + + // submit first "dashboard" query + QueryId firstDashboardQuery = createDashboardQuery(queryRunner); + + // wait for the first "dashboard" query to start + waitForQueryState(queryRunner, firstDashboardQuery, RUNNING); + + // submit second "dashboard" query + QueryId secondDashboardQuery = createDashboardQuery(queryRunner); + + // wait for the second "dashboard" query to be queued ("dashboard.${USER}" queue strategy only allows one "dashboard" query to be accepted for execution) + waitForQueryState(queryRunner, secondDashboardQuery, QUEUED); + + // Retrieve information for the queued query + QueryInfo queryInfo = getQueryInfo("/v1/query/" + secondDashboardQuery.getId()); + assertNotNull(queryInfo); + assertEquals(queryInfo.getState(), QUEUED); + assertEquals(queryInfo.getQuery(), LONG_LASTING_QUERY); + assertNotNull(queryInfo.getQueryStats()); + } + private void assertResourceGroup(DistributedQueryRunner queryRunner, Session session, String query, ResourceGroupId expectedResourceGroup) throws InterruptedException { @@ -375,4 +425,13 @@ public static ResourceGroupId createResourceGroupId(String root, String... subGr .addAll(asList(subGroups)) .build()); } + + private QueryInfo getQueryInfo(String path) + throws IOException + { + requireNonNull(path, "path is null"); + Request request = prepareGet().setUri(queryRunner.getCoordinator().resolve(path)).build(); + String body = client.execute(request, createStringResponseHandler()).getBody(); + return objectMapper.readValue(body, QueryInfo.class); + } } From 4405e0cbc7af572d4457b5d6331fa59912a68af4 Mon Sep 17 00:00:00 2001 From: Tim Meehan Date: Sat, 18 Apr 2020 19:40:00 -0700 Subject: [PATCH 014/129] Allow queued queries to be preempted and canceled --- .../presto/dispatcher/DispatchManager.java | 8 +++++ .../facebook/presto/server/QueryResource.java | 10 +++---- .../facebook/presto/execution/TestQueues.java | 30 ++++++++++++++++++- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java index 53dfd7e53fde4..7db28dad7ea40 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java @@ -285,6 +285,14 @@ public Optional getDispatchInfo(QueryId queryId) }); } + public void failQuery(QueryId queryId, Throwable cause) + { + requireNonNull(cause, "cause is null"); + + queryTracker.tryGetQuery(queryId) + .ifPresent(query -> query.fail(cause)); + } + public void cancelQuery(QueryId queryId) { queryTracker.tryGetQuery(queryId) diff --git a/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java b/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java index c0b69dacc7e00..1a5e515fbbb7b 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/QueryResource.java @@ -90,7 +90,7 @@ public Response getQueryInfo(@PathParam("queryId") QueryId queryId) public void cancelQuery(@PathParam("queryId") QueryId queryId) { requireNonNull(queryId, "queryId is null"); - queryManager.cancelQuery(queryId); + dispatchManager.cancelQuery(queryId); } @PUT @@ -112,17 +112,17 @@ private Response failQuery(QueryId queryId, PrestoException queryException) requireNonNull(queryId, "queryId is null"); try { - QueryState state = queryManager.getQueryState(queryId); + BasicQueryInfo state = dispatchManager.getQueryInfo(queryId); // check before killing to provide the proper error code (this is racy) - if (state.isDone()) { + if (state.getState().isDone()) { return Response.status(Status.CONFLICT).build(); } - queryManager.failQuery(queryId, queryException); + dispatchManager.failQuery(queryId, queryException); // verify if the query was failed (if not, we lost the race) - if (!queryException.getErrorCode().equals(queryManager.getQueryInfo(queryId).getErrorCode())) { + if (!queryException.getErrorCode().equals(dispatchManager.getQueryInfo(queryId).getErrorCode())) { return Response.status(Status.CONFLICT).build(); } diff --git a/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java b/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java index f6c4a87bb4307..62eb4cb0b822e 100644 --- a/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java +++ b/presto-tests/src/test/java/com/facebook/presto/execution/TestQueues.java @@ -39,11 +39,14 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; +import javax.ws.rs.core.Response.Status; + import java.io.IOException; import java.util.Optional; import java.util.Set; import static com.facebook.airlift.http.client.Request.Builder.prepareGet; +import static com.facebook.airlift.http.client.Request.Builder.preparePut; import static com.facebook.airlift.http.client.StringResponseHandler.createStringResponseHandler; import static com.facebook.airlift.testing.Closeables.closeQuietly; import static com.facebook.presto.SystemSessionProperties.HASH_PARTITION_COUNT; @@ -55,11 +58,14 @@ import static com.facebook.presto.execution.TestQueryRunnerUtil.createQuery; import static com.facebook.presto.execution.TestQueryRunnerUtil.createQueryRunner; import static com.facebook.presto.execution.TestQueryRunnerUtil.waitForQueryState; +import static com.facebook.presto.spi.StandardErrorCode.ADMINISTRATIVELY_KILLED; +import static com.facebook.presto.spi.StandardErrorCode.ADMINISTRATIVELY_PREEMPTED; import static com.facebook.presto.spi.StandardErrorCode.QUERY_REJECTED; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.lang.String.format; import static java.util.Arrays.asList; import static java.util.Objects.requireNonNull; +import static javax.ws.rs.core.Response.Status.fromStatusCode; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; @@ -322,7 +328,7 @@ public void testQueryTypeBasedSelection() } @Test(timeOut = 240_000) - public void testQueuedQueryInfo() + public void testQueuedQueryInteraction() throws Exception { queryRunner.installPlugin(new ResourceGroupManagerPlugin()); @@ -346,6 +352,20 @@ public void testQueuedQueryInfo() assertEquals(queryInfo.getState(), QUEUED); assertEquals(queryInfo.getQuery(), LONG_LASTING_QUERY); assertNotNull(queryInfo.getQueryStats()); + + killQuery(format("/v1/query/%s/killed", secondDashboardQuery.getId())); + queryInfo = getQueryInfo("/v1/query/" + secondDashboardQuery.getId()); + assertNotNull(queryInfo); + assertEquals(queryInfo.getErrorCode(), ADMINISTRATIVELY_KILLED.toErrorCode()); + + // submit third "dashboard" query + QueryId thirdDashboardQuery = createDashboardQuery(queryRunner); + waitForQueryState(queryRunner, thirdDashboardQuery, QUEUED); + + killQuery(format("/v1/query/%s/preempted", thirdDashboardQuery.getId())); + queryInfo = getQueryInfo("/v1/query/" + thirdDashboardQuery.getId()); + assertNotNull(queryInfo); + assertEquals(queryInfo.getErrorCode(), ADMINISTRATIVELY_PREEMPTED.toErrorCode()); } private void assertResourceGroup(DistributedQueryRunner queryRunner, Session session, String query, ResourceGroupId expectedResourceGroup) @@ -434,4 +454,12 @@ private QueryInfo getQueryInfo(String path) String body = client.execute(request, createStringResponseHandler()).getBody(); return objectMapper.readValue(body, QueryInfo.class); } + + private void killQuery(String path) + { + requireNonNull(path, "path is null"); + Request request = preparePut().setUri(queryRunner.getCoordinator().resolve(path)).build(); + Status status = fromStatusCode(client.execute(request, createStringResponseHandler()).getStatusCode()); + assertEquals(Status.OK, status); + } } From 353853bde9f528441c8fa4f70f1d9a5d31acc497 Mon Sep 17 00:00:00 2001 From: miller <920555980@qq.com> Date: Sat, 25 Apr 2020 15:40:05 +0800 Subject: [PATCH 015/129] add presto-druid connector to server tarball --- presto-server/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/presto-server/pom.xml b/presto-server/pom.xml index 85bc87fb0c983..2393c3717f123 100644 --- a/presto-server/pom.xml +++ b/presto-server/pom.xml @@ -283,6 +283,14 @@ zip provided + + + com.facebook.presto + presto-druid + ${project.version} + zip + provided + From 7a988d5657d537516317c362be2d015dd5ff8417 Mon Sep 17 00:00:00 2001 From: miller <920555980@qq.com> Date: Sat, 25 Apr 2020 15:42:35 +0800 Subject: [PATCH 016/129] Fix float value for druid connector --- .../java/com/facebook/presto/druid/DruidBrokerPageSource.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java index 8bdeadcf98f40..4df8542eeb09a 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java @@ -117,7 +117,7 @@ public Page getNextPage() JsonNode rootNode; try { rootNode = OBJECT_MAPPER.readTree(data); - checkArgument(rootNode.isArray(), "broker Druid query should return Json Array"); + checkArgument(rootNode.isArray(), "broker Druid query should return Json Array: " + data); ArrayNode arrayNode = (ArrayNode) rootNode; Iterator iterator = arrayNode.elements(); while (iterator.hasNext()) { @@ -140,7 +140,7 @@ else if (type instanceof DoubleType) { type.writeDouble(blockBuilder, value.doubleValue()); } else if (type instanceof RealType) { - type.writeDouble(blockBuilder, value.doubleValue()); + type.writeLong(blockBuilder, value.longValue()); } else if (type instanceof TimestampType) { DateTimeFormatter formatter = ISODateTimeFormat.dateTimeParser() From a20247b1e77890381faa068b5564af8066031feb Mon Sep 17 00:00:00 2001 From: miller <920555980@qq.com> Date: Sat, 25 Apr 2020 15:43:31 +0800 Subject: [PATCH 017/129] escape keyword for druid column name --- .../java/com/facebook/presto/druid/DruidQueryGenerator.java | 2 +- .../com/facebook/presto/druid/TestDruidQueryGenerator.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java index b8cb457a93579..18e64649cfe9b 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java @@ -257,7 +257,7 @@ public DruidQueryGeneratorContext visitTableScan(TableScanNode node, DruidQueryG node.getOutputVariables().forEach(outputColumn -> { DruidColumnHandle druidColumn = (DruidColumnHandle) (node.getAssignments().get(outputColumn)); checkArgument(druidColumn.getType().equals(DruidColumnHandle.DruidColumnType.REGULAR), "Unexpected druid column handle that is not regular: " + druidColumn); - selections.put(outputColumn, new Selection(druidColumn.getColumnName(), TABLE_COLUMN)); + selections.put(outputColumn, new Selection("\\\"" + druidColumn.getColumnName() + "\\\"", TABLE_COLUMN)); }); return new DruidQueryGeneratorContext(selections, tableHandle.getTableName()); } diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java index b3c114861d1e8..1c0d7a2cb4d99 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java @@ -54,7 +54,9 @@ private void testDQL( String expressions = planNode.getOutputVariables().stream().map(v -> outputVariables.get(v.getName())).filter(v -> v != null).collect(Collectors.joining(", ")); expectedDQL = expectedDQL.replace("__expressions__", expressions); } - assertEquals(druidQueryGeneratorResult.getGeneratedDql().getDql(), expectedDQL); + String generateDQL = druidQueryGeneratorResult.getGeneratedDql().getDql(); + generateDQL = generateDQL.replaceAll("\\\\\"", ""); + assertEquals(generateDQL, expectedDQL); } private void testDQL(Function planBuilderConsumer, String expectedDQL, SessionHolder sessionHolder, Map outputVariables) From 34b3f6a75b333d5c072bd81e0638ee7711bb68a1 Mon Sep 17 00:00:00 2001 From: Zhenxiao Luo Date: Fri, 24 Apr 2020 17:02:37 -0700 Subject: [PATCH 018/129] Add session property for druid connector --- .../src/main/sphinx/connector/druid.rst | 23 +++++--- .../facebook/presto/druid/DruidConfig.java | 14 +++++ .../facebook/presto/druid/DruidConnector.java | 13 +++++ .../facebook/presto/druid/DruidModule.java | 3 +- .../presto/druid/DruidSessionProperties.java | 53 +++++++++++++++++++ .../presto/druid/DruidSplitManager.java | 3 +- .../presto/druid/TestDruidConfig.java | 7 ++- 7 files changed, 105 insertions(+), 11 deletions(-) create mode 100644 presto-druid/src/main/java/com/facebook/presto/druid/DruidSessionProperties.java diff --git a/presto-docs/src/main/sphinx/connector/druid.rst b/presto-docs/src/main/sphinx/connector/druid.rst index 96b48371c1e0a..2609826141625 100644 --- a/presto-docs/src/main/sphinx/connector/druid.rst +++ b/presto-docs/src/main/sphinx/connector/druid.rst @@ -25,19 +25,21 @@ replacing the properties as appropriate: druid.coordinator-url=hostname:port druid.broker-url=hostname:port druid.schema-name=schema + druid.compute-pushdown-enabled=true Configuration Properties ------------------------ The following configuration properties are available: -========================== ======================= -Property Name Description -========================== ======================= -``druid.coordinator-url`` Druid coordinator url. -``druid.broker-url`` Druid broker url. -``druid.schema-name`` Druid schema name. -========================== ======================= +================================== =================================================== +Property Name Description +================================== =================================================== +``druid.coordinator-url`` Druid coordinator url. +``druid.broker-url`` Druid broker url. +``druid.schema-name`` Druid schema name. +``druid.compute-pushdown-enabled`` Whether to pushdown all query processing to Druid. +================================== =================================================== ``druid.coordinator-url`` ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -56,6 +58,13 @@ Druid schema name. This property is optional; the default is ``druid``. +``druid.compute-pushdown-enabled`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Whether to pushdown all query processing to Druid. + +the default is ``false``. + Data Types ---------- diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java index 0f69fa4cdb8e8..6958018711e71 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java @@ -23,6 +23,7 @@ public class DruidConfig private String coordinatorUrl; private String brokerUrl; private String schema = "druid"; + private boolean pushdown; @NotNull public String getDruidCoordinatorUrl() @@ -65,4 +66,17 @@ public DruidConfig setDruidSchema(String schema) this.schema = schema; return this; } + + public boolean isComputePushdownEnabled() + { + return pushdown; + } + + @Config("druid.compute-pushdown-enabled") + @ConfigDescription("pushdown query processing to druid") + public DruidConfig setComputePushdownEnabled(boolean pushdown) + { + this.pushdown = pushdown; + return this; + } } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnector.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnector.java index 5d8fa166992b4..4e0284bda4f48 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnector.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnector.java @@ -22,10 +22,14 @@ import com.facebook.presto.spi.connector.ConnectorPlanOptimizerProvider; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; +import com.facebook.presto.spi.session.PropertyMetadata; import com.facebook.presto.spi.transaction.IsolationLevel; +import com.google.common.collect.ImmutableList; import javax.inject.Inject; +import java.util.List; + import static com.facebook.presto.druid.DruidTransactionHandle.INSTANCE; import static java.util.Objects.requireNonNull; @@ -38,6 +42,7 @@ public class DruidConnector private final DruidMetadata metadata; private final DruidSplitManager splitManager; private final DruidPageSourceProvider pageSourceProvider; + private final List> sessionProperties; private final ConnectorPlanOptimizer planOptimizer; @Inject @@ -46,12 +51,14 @@ public DruidConnector( DruidMetadata metadata, DruidSplitManager splitManager, DruidPageSourceProvider pageSourceProvider, + DruidSessionProperties druidSessionProperties, DruidPlanOptimizer planOptimizer) { this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null"); this.metadata = requireNonNull(metadata, "metadata is null"); this.splitManager = requireNonNull(splitManager, "splitManager is null"); this.pageSourceProvider = requireNonNull(pageSourceProvider, "pageSourceProvider is null"); + this.sessionProperties = ImmutableList.copyOf(requireNonNull(druidSessionProperties, "sessionProperties is null").getSessionProperties()); this.planOptimizer = requireNonNull(planOptimizer, "plan optimizer is null"); } @@ -79,6 +86,12 @@ public ConnectorPageSourceProvider getPageSourceProvider() return pageSourceProvider; } + @Override + public List> getSessionProperties() + { + return sessionProperties; + } + @Override public ConnectorPlanOptimizerProvider getConnectorPlanOptimizerProvider() { diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidModule.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidModule.java index 91672f5a01355..5e6ad592bfa81 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidModule.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidModule.java @@ -30,6 +30,7 @@ public DruidModule() @Override public void configure(Binder binder) { + configBinder(binder).bindConfig(DruidConfig.class); binder.bind(DruidConnector.class).in(Scopes.SINGLETON); binder.bind(DruidMetadata.class).in(Scopes.SINGLETON); binder.bind(DruidHandleResolver.class).in(Scopes.SINGLETON); @@ -38,8 +39,8 @@ public void configure(Binder binder) binder.bind(DruidSplitManager.class).in(Scopes.SINGLETON); binder.bind(DruidPageSourceProvider.class).in(Scopes.SINGLETON); binder.bind(DruidQueryGenerator.class).in(Scopes.SINGLETON); + binder.bind(DruidSessionProperties.class).in(Scopes.SINGLETON); - configBinder(binder).bindConfig(DruidConfig.class); httpClientBinder(binder).bindHttpClient("druid-client", ForDruidClient.class); } } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSessionProperties.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSessionProperties.java new file mode 100644 index 0000000000000..b717ff69a8005 --- /dev/null +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSessionProperties.java @@ -0,0 +1,53 @@ +/* + * 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 com.facebook.presto.druid; + +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.session.PropertyMetadata; +import com.google.common.collect.ImmutableList; + +import javax.inject.Inject; + +import java.util.List; + +import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; + +public class DruidSessionProperties +{ + private static final String COMPUTE_PUSHDOWN = "compute_pushdown_enabled"; + + private final List> sessionProperties; + + public static boolean isComputePushdownEnabled(ConnectorSession session) + { + return session.getProperty(COMPUTE_PUSHDOWN, Boolean.class); + } + + @Inject + public DruidSessionProperties(DruidConfig druidConfig) + { + sessionProperties = ImmutableList.of( + booleanProperty( + COMPUTE_PUSHDOWN, + "Pushdown query processing to druid", + druidConfig.isComputePushdownEnabled(), + false)); + } + + public List> getSessionProperties() + { + return sessionProperties; + } +} diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSplitManager.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSplitManager.java index f2bc5c4d59e06..be8b0a468e27e 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSplitManager.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSplitManager.java @@ -26,6 +26,7 @@ import java.util.List; +import static com.facebook.presto.druid.DruidSessionProperties.isComputePushdownEnabled; import static com.facebook.presto.druid.DruidSplit.createBrokerSplit; import static com.facebook.presto.druid.DruidSplit.createSegmentSplit; import static com.google.common.collect.ImmutableList.toImmutableList; @@ -51,7 +52,7 @@ public ConnectorSplitSource getSplits( { DruidTableLayoutHandle layoutHandle = (DruidTableLayoutHandle) layout; DruidTableHandle table = layoutHandle.getTable(); - if (table.getDql().isPresent() && table.getDql().get().getPushdown()) { + if (isComputePushdownEnabled(session) || (table.getDql().isPresent() && table.getDql().get().getPushdown())) { return new FixedSplitSource(ImmutableList.of(createBrokerSplit(table.getDql().get()))); } List segmentIds = druidClient.getDataSegmentId(table.getTableName()); diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java index b4eb272f741cb..c4cfc00e3df13 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java @@ -30,7 +30,8 @@ public void testDefaults() assertRecordedDefaults(recordDefaults(DruidConfig.class) .setDruidBrokerUrl(null) .setDruidCoordinatorUrl(null) - .setDruidSchema("druid")); + .setDruidSchema("druid") + .setComputePushdownEnabled(false)); } @Test @@ -40,12 +41,14 @@ public void testExplicitPropertyMappings() .put("druid.broker-url", "http://druid.broker:1234") .put("druid.coordinator-url", "http://druid.coordinator:4321") .put("druid.schema-name", "test") + .put("druid.compute-pushdown-enabled", "true") .build(); DruidConfig expected = new DruidConfig() .setDruidBrokerUrl("http://druid.broker:1234") .setDruidCoordinatorUrl("http://druid.coordinator:4321") - .setDruidSchema("test"); + .setDruidSchema("test") + .setComputePushdownEnabled(true); ConfigAssertions.assertFullMapping(properties, expected); } From 0e6c5ffd1df775e5da562fa1f0a809ccdbf94939 Mon Sep 17 00:00:00 2001 From: Tim Meehan Date: Thu, 23 Apr 2020 16:15:16 -0700 Subject: [PATCH 019/129] Fix query client timeout --- .../presto/dispatcher/DispatchManager.java | 5 + .../dispatcher/QueuedStatementResource.java | 2 +- .../presto/server/TestQueryResource.java | 110 ++++++++++++------ 3 files changed, 83 insertions(+), 34 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java index 7db28dad7ea40..a06e420135127 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/DispatchManager.java @@ -285,6 +285,11 @@ public Optional getDispatchInfo(QueryId queryId) }); } + public boolean isQueryPresent(QueryId queryId) + { + return queryTracker.tryGetQuery(queryId).isPresent(); + } + public void failQuery(QueryId queryId, Throwable cause) { requireNonNull(cause, "cause is null"); diff --git a/presto-main/src/main/java/com/facebook/presto/dispatcher/QueuedStatementResource.java b/presto-main/src/main/java/com/facebook/presto/dispatcher/QueuedStatementResource.java index 79a62fd35ea95..3d4a5d0283a44 100644 --- a/presto-main/src/main/java/com/facebook/presto/dispatcher/QueuedStatementResource.java +++ b/presto-main/src/main/java/com/facebook/presto/dispatcher/QueuedStatementResource.java @@ -118,7 +118,7 @@ public QueuedStatementResource( } // forget about this query if the query manager is no longer tracking it - if (!dispatchManager.getDispatchInfo(entry.getKey()).isPresent()) { + if (!dispatchManager.isQueryPresent(entry.getKey())) { queries.remove(entry.getKey()); } } diff --git a/presto-main/src/test/java/com/facebook/presto/server/TestQueryResource.java b/presto-main/src/test/java/com/facebook/presto/server/TestQueryResource.java index 1951b2ddc6c2e..4320e224a639a 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/TestQueryResource.java +++ b/presto-main/src/test/java/com/facebook/presto/server/TestQueryResource.java @@ -18,6 +18,9 @@ import com.facebook.airlift.http.client.jetty.JettyHttpClient; import com.facebook.presto.client.QueryResults; import com.facebook.presto.server.testing.TestingPrestoServer; +import com.facebook.presto.sql.parser.SqlParserOptions; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -35,45 +38,29 @@ import static com.facebook.airlift.testing.Closeables.closeQuietly; import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; import static com.facebook.presto.testing.assertions.Assert.assertEquals; +import static java.lang.Thread.sleep; import static java.nio.charset.StandardCharsets.UTF_8; +import static java.util.concurrent.TimeUnit.SECONDS; import static org.testng.Assert.fail; @Test(singleThreaded = true) public class TestQueryResource { - private final HttpClient client = new JettyHttpClient(); + private HttpClient client; private TestingPrestoServer server; - public TestQueryResource() - throws Exception - { - server = new TestingPrestoServer(); - } - @BeforeClass public void setup() + throws Exception { - runToCompletion("SELECT 1"); - runToCompletion("SELECT 2"); - runToCompletion("SELECT x FROM y"); - } - - private void runToCompletion(String sql) - { - URI uri = uriBuilderFrom(server.getBaseUrl().resolve("/v1/statement")).build(); - Request request = preparePost() - .setHeader(PRESTO_USER, "user") - .setUri(uri) - .setBodyGenerator(createStaticBodyGenerator(sql, UTF_8)) - .build(); - QueryResults queryResults = client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); - while (queryResults.getNextUri() != null) { - request = prepareGet() - .setHeader(PRESTO_USER, "user") - .setUri(queryResults.getNextUri()) - .build(); - queryResults = client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); - } + client = new JettyHttpClient(); + server = new TestingPrestoServer( + true, + ImmutableMap.of("query.client.timeout", "10s"), + "testing", + null, + new SqlParserOptions(), + ImmutableList.of()); } @AfterClass(alwaysRun = true) @@ -81,14 +68,25 @@ public void teardown() { closeQuietly(server); closeQuietly(client); + server = null; + client = null; } - @Test + @Test(timeOut = 60_000) public void testGetQueryInfos() + throws Exception { + runToCompletion("SELECT 1"); + runToCompletion("SELECT 2"); + runToCompletion("SELECT x FROM y"); + runToQueued("SELECT 3"); + + // Sleep to allow query to make some progress + sleep(SECONDS.toMillis(5)); + List infos = getQueryInfos("/v1/query"); - assertEquals(infos.size(), 3); - assertStateCounts(infos, 2, 1, 0); + assertEquals(infos.size(), 4); + assertStateCounts(infos, 2, 1, 1); infos = getQueryInfos("/v1/query?state=finished"); assertEquals(infos.size(), 2); @@ -99,8 +97,15 @@ public void testGetQueryInfos() assertStateCounts(infos, 0, 1, 0); infos = getQueryInfos("/v1/query?state=running"); - assertEquals(infos.size(), 0); - assertStateCounts(infos, 0, 0, 0); + assertEquals(infos.size(), 1); + assertStateCounts(infos, 0, 0, 1); + + // Sleep to trigger client query expiration + sleep(SECONDS.toMillis(10)); + + infos = getQueryInfos("/v1/query?state=failed"); + assertEquals(infos.size(), 2); + assertStateCounts(infos, 0, 2, 0); } private List getQueryInfos(String path) @@ -109,6 +114,45 @@ private List getQueryInfos(String path) return client.execute(request, createJsonResponseHandler(listJsonCodec(BasicQueryInfo.class))); } + private void runToCompletion(String sql) + { + URI uri = uriBuilderFrom(server.getBaseUrl().resolve("/v1/statement")).build(); + QueryResults queryResults = postQuery(sql, uri); + while (queryResults.getNextUri() != null) { + queryResults = getQueryResults(queryResults); + } + } + + private void runToQueued(String sql) + { + URI uri = uriBuilderFrom(server.getBaseUrl().resolve("/v1/statement")).build(); + QueryResults queryResults = postQuery(sql, uri); + while (!"QUEUED".equals(queryResults.getStats().getState())) { + queryResults = getQueryResults(queryResults); + } + getQueryResults(queryResults); + } + + private QueryResults postQuery(String sql, URI uri) + { + Request request = preparePost() + .setHeader(PRESTO_USER, "user") + .setUri(uri) + .setBodyGenerator(createStaticBodyGenerator(sql, UTF_8)) + .build(); + return client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); + } + + private QueryResults getQueryResults(QueryResults queryResults) + { + Request request = prepareGet() + .setHeader(PRESTO_USER, "user") + .setUri(queryResults.getNextUri()) + .build(); + queryResults = client.execute(request, createJsonResponseHandler(jsonCodec(QueryResults.class))); + return queryResults; + } + private void assertStateCounts(List infos, int expectedFinished, int expectedFailed, int expectedRunning) { int failed = 0; From 8f46c25a37b02a8a10b83ca42322435274d22aca Mon Sep 17 00:00:00 2001 From: Leiqing Cai Date: Mon, 27 Apr 2020 12:48:58 -0700 Subject: [PATCH 020/129] Add release notes for 0.234.1 and 0.234.2 --- presto-docs/src/main/sphinx/release.rst | 2 ++ presto-docs/src/main/sphinx/release/release-0.234.1.rst | 7 +++++++ presto-docs/src/main/sphinx/release/release-0.234.2.rst | 9 +++++++++ 3 files changed, 18 insertions(+) create mode 100644 presto-docs/src/main/sphinx/release/release-0.234.1.rst create mode 100644 presto-docs/src/main/sphinx/release/release-0.234.2.rst diff --git a/presto-docs/src/main/sphinx/release.rst b/presto-docs/src/main/sphinx/release.rst index 88fc7440cf7bb..1ae1ab1368dd0 100644 --- a/presto-docs/src/main/sphinx/release.rst +++ b/presto-docs/src/main/sphinx/release.rst @@ -5,6 +5,8 @@ Release Notes .. toctree:: :maxdepth: 1 + release/release-0.234.2 + release/release-0.234.1 release/release-0.234 release/release-0.233.1 release/release-0.233 diff --git a/presto-docs/src/main/sphinx/release/release-0.234.1.rst b/presto-docs/src/main/sphinx/release/release-0.234.1.rst new file mode 100644 index 0000000000000..2185aa2b57e1f --- /dev/null +++ b/presto-docs/src/main/sphinx/release/release-0.234.1.rst @@ -0,0 +1,7 @@ +=============== +Release 0.234.1 +=============== + +General Changes +_______________ +* Fix an issue where warnings in one query carries over to all other queries. diff --git a/presto-docs/src/main/sphinx/release/release-0.234.2.rst b/presto-docs/src/main/sphinx/release/release-0.234.2.rst new file mode 100644 index 0000000000000..fe04ff7d2207d --- /dev/null +++ b/presto-docs/src/main/sphinx/release/release-0.234.2.rst @@ -0,0 +1,9 @@ +=============== +Release 0.234.2 +=============== + +General Changes +_______________ +* Fix an issue where cancelling running queries will cause the query to not being pruned properly, + leading to fewer runnable slots. +* Fix an issue where queued queries cannot be cancelled or preempted properly. From b4f826e1f6a7f1ce33d4d4a3da68826e79a099cc Mon Sep 17 00:00:00 2001 From: Wenlei Xie Date: Wed, 22 Apr 2020 13:10:50 -0400 Subject: [PATCH 021/129] Refactor HiveWriterFactory Minor variable renames --- .../java/com/facebook/presto/hive/HiveWriterFactory.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java index 5c70fdd9eb933..e377645e87293 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java @@ -136,7 +136,7 @@ public class HiveWriterFactory private final HiveWriterStats hiveWriterStats; - private final boolean partitionCommitRequired; + private final boolean writeToTempFile; public HiveWriterFactory( Set fileWriterFactories, @@ -289,7 +289,9 @@ public HiveWriterFactory( this.hiveWriterStats = requireNonNull(hiveWriterStats, "hiveWriterStats is null"); - this.partitionCommitRequired = partitionCommitRequired; + // In Hive connector, bucket commit is fulfilled by writing to temporary file in TableWriterOperator, and rename in TableFinishOpeartor + // (note Presto partition here loosely maps to Hive bucket) + this.writeToTempFile = partitionCommitRequired; } public HiveWriter createWriter(Page partitionColumns, int position, OptionalInt bucketNumber) @@ -326,7 +328,7 @@ public HiveWriter createWriter(Page partitionColumns, int position, OptionalInt } String writeFileName; - if (partitionCommitRequired) { + if (writeToTempFile) { writeFileName = ".tmp.presto." + filePrefix + "_" + randomUUID() + extension; } else { From 2c9385a1f03e75d30e9cd5070138740d5ec1f10d Mon Sep 17 00:00:00 2001 From: Wenlei Xie Date: Wed, 22 Apr 2020 13:10:52 -0400 Subject: [PATCH 022/129] Rename PageSinkProperties#isPartitionCommitRequired Page sink commit mechanism is a general connector capability and is not restricted only for partition commit. --- .../accumulo/io/AccumuloPageSinkProvider.java | 2 +- .../plugin/jdbc/JdbcPageSinkProvider.java | 4 +- .../blackhole/BlackHolePageSinkProvider.java | 4 +- .../cassandra/CassandraPageSinkProvider.java | 4 +- .../presto/hive/HivePageSinkProvider.java | 4 +- .../presto/hive/AbstractTestHiveClient.java | 42 +++++++++---------- .../presto/kudu/KuduPageSinkProvider.java | 4 +- .../presto/operator/TableWriterOperator.java | 4 +- .../plugin/memory/MemoryPageSinkProvider.java | 4 +- .../presto/mongodb/MongoPageSinkProvider.java | 4 +- .../presto/raptor/RaptorPageSinkProvider.java | 4 +- .../presto/spi/PageSinkProperties.java | 18 ++++---- 12 files changed, 49 insertions(+), 49 deletions(-) diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSinkProvider.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSinkProvider.java index 76216f590fe76..9e935b1fdac4a 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSinkProvider.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSinkProvider.java @@ -56,7 +56,7 @@ public AccumuloPageSinkProvider( @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle outputTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Accumulo connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Accumulo connector does not support page sink commit"); AccumuloTableHandle tableHandle = (AccumuloTableHandle) outputTableHandle; return new AccumuloPageSink(connector, client.getTable(tableHandle.toSchemaTableName()), username); } diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSinkProvider.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSinkProvider.java index 8fe13b8d64eee..35c1b76900b03 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSinkProvider.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSinkProvider.java @@ -40,14 +40,14 @@ public JdbcPageSinkProvider(JdbcClient jdbcClient) @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Jdbc connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Jdbc connector does not support page sink commit"); return new JdbcPageSink(session, (JdbcOutputTableHandle) tableHandle, jdbcClient); } @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Jdbc connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Jdbc connector does not support page sink commit"); return new JdbcPageSink(session, (JdbcOutputTableHandle) tableHandle, jdbcClient); } } diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSinkProvider.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSinkProvider.java index 354d47d079cd8..cbc89243bbebb 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSinkProvider.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSinkProvider.java @@ -38,7 +38,7 @@ public BlackHolePageSinkProvider(ListeningScheduledExecutorService executorServi @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle outputTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Black hole connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Black hole connector does not support page sink commit"); BlackHoleOutputTableHandle handle = (BlackHoleOutputTableHandle) outputTableHandle; return new BlackHolePageSink(executorService, handle.getPageProcessingDelay()); } @@ -46,7 +46,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle insertTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Black hole connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Black hole connector does not support page sink commit"); BlackHoleInsertTableHandle handle = (BlackHoleInsertTableHandle) insertTableHandle; return new BlackHolePageSink(executorService, handle.getPageProcessingDelay()); } diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSinkProvider.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSinkProvider.java index 248a79a8ad1d3..8e23140eb7684 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSinkProvider.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSinkProvider.java @@ -40,7 +40,7 @@ public CassandraPageSinkProvider(CassandraSession cassandraSession) @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Cassandra connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Cassandra connector does not support page sink commit"); requireNonNull(tableHandle, "tableHandle is null"); checkArgument(tableHandle instanceof CassandraOutputTableHandle, "tableHandle is not an instance of CassandraOutputTableHandle"); CassandraOutputTableHandle handle = (CassandraOutputTableHandle) tableHandle; @@ -57,7 +57,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Cassandra connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Cassandra connector does not support page sink commit"); requireNonNull(tableHandle, "tableHandle is null"); checkArgument(tableHandle instanceof CassandraInsertTableHandle, "tableHandle is not an instance of ConnectorInsertTableHandle"); CassandraInsertTableHandle handle = (CassandraInsertTableHandle) tableHandle; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java index d84df5bb84498..d8cf993b75916 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java @@ -113,14 +113,14 @@ public HivePageSinkProvider( public ConnectorPageSink createPageSink(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorOutputTableHandle tableHandle, PageSinkProperties pageSinkProperties) { HiveWritableTableHandle handle = (HiveOutputTableHandle) tableHandle; - return createPageSink(handle, true, session, pageSinkProperties.isPartitionCommitRequired()); + return createPageSink(handle, true, session, pageSinkProperties.isCommitRequired()); } @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transaction, ConnectorSession session, ConnectorInsertTableHandle tableHandle, PageSinkProperties pageSinkProperties) { HiveInsertTableHandle handle = (HiveInsertTableHandle) tableHandle; - return createPageSink(handle, false, session, pageSinkProperties.isPartitionCommitRequired()); + return createPageSink(handle, false, session, pageSinkProperties.isCommitRequired()); } private ConnectorPageSink createPageSink(HiveWritableTableHandle handle, boolean isCreateTable, ConnectorSession session, boolean partitionCommitRequired) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index a6a7a6eb9a073..a61b96aa30f31 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -2606,14 +2606,14 @@ public void testTableCreation() { for (HiveStorageFormat storageFormat : createTableFormats) { SchemaTableName temporaryCreateTable = temporaryTable("create"); - SchemaTableName temporaryCreateTableForPartitionCommit = temporaryTable("create_partition_commit"); + SchemaTableName temporaryCreateTableForPageSinkCommit = temporaryTable("create_table_page_sink_commit"); try { doCreateTable(temporaryCreateTable, storageFormat, PageSinkProperties.defaultProperties()); - doCreateTable(temporaryCreateTableForPartitionCommit, storageFormat, PageSinkProperties.builder().setPartitionCommitRequired(true).build()); + doCreateTable(temporaryCreateTableForPageSinkCommit, storageFormat, PageSinkProperties.builder().setCommitRequired(true).build()); } finally { dropTable(temporaryCreateTable); - dropTable(temporaryCreateTableForPartitionCommit); + dropTable(temporaryCreateTableForPageSinkCommit); } } } @@ -2904,14 +2904,14 @@ public void testInsert() { for (HiveStorageFormat storageFormat : createTableFormats) { SchemaTableName temporaryInsertTable = temporaryTable("insert"); - SchemaTableName temporaryInsertTableForPartitionCommit = temporaryTable("insert_partition_commit"); + SchemaTableName temporaryInsertTableForPageSinkCommit = temporaryTable("insert_table_page_sink_commit"); try { doInsert(storageFormat, temporaryInsertTable, PageSinkProperties.defaultProperties()); - doInsert(storageFormat, temporaryInsertTableForPartitionCommit, PageSinkProperties.builder().setPartitionCommitRequired(true).build()); + doInsert(storageFormat, temporaryInsertTableForPageSinkCommit, PageSinkProperties.builder().setCommitRequired(true).build()); } finally { dropTable(temporaryInsertTable); - dropTable(temporaryInsertTableForPartitionCommit); + dropTable(temporaryInsertTableForPageSinkCommit); } } } @@ -2922,14 +2922,14 @@ public void testInsertIntoNewPartition() { for (HiveStorageFormat storageFormat : createTableFormats) { SchemaTableName temporaryInsertIntoNewPartitionTable = temporaryTable("insert_new_partitioned"); - SchemaTableName temporaryInsertIntoNewPartitionTableForPartitionCommit = temporaryTable("insert_new_partitioned_partition_commit"); + SchemaTableName temporaryInsertIntoNewPartitionTableForPageSinkCommit = temporaryTable("insert_new_partitioned_page_sink_commit"); try { doInsertIntoNewPartition(storageFormat, temporaryInsertIntoNewPartitionTable, PageSinkProperties.defaultProperties()); - doInsertIntoNewPartition(storageFormat, temporaryInsertIntoNewPartitionTableForPartitionCommit, PageSinkProperties.builder().setPartitionCommitRequired(true).build()); + doInsertIntoNewPartition(storageFormat, temporaryInsertIntoNewPartitionTableForPageSinkCommit, PageSinkProperties.builder().setCommitRequired(true).build()); } finally { dropTable(temporaryInsertIntoNewPartitionTable); - dropTable(temporaryInsertIntoNewPartitionTableForPartitionCommit); + dropTable(temporaryInsertIntoNewPartitionTableForPageSinkCommit); } } } @@ -2940,14 +2940,14 @@ public void testInsertIntoExistingPartition() { for (HiveStorageFormat storageFormat : createTableFormats) { SchemaTableName temporaryInsertIntoExistingPartitionTable = temporaryTable("insert_existing_partitioned"); - SchemaTableName temporaryInsertIntoExistingPartitionTableForPartitionCommit = temporaryTable("insert_existing_partitioned_partition_commit"); + SchemaTableName temporaryInsertIntoExistingPartitionTableForPageSinkCommit = temporaryTable("insert_existing_partitioned_page_sink_commit"); try { doInsertIntoExistingPartition(storageFormat, temporaryInsertIntoExistingPartitionTable, PageSinkProperties.defaultProperties()); - doInsertIntoExistingPartition(storageFormat, temporaryInsertIntoExistingPartitionTableForPartitionCommit, PageSinkProperties.builder().setPartitionCommitRequired(true).build()); + doInsertIntoExistingPartition(storageFormat, temporaryInsertIntoExistingPartitionTableForPageSinkCommit, PageSinkProperties.builder().setCommitRequired(true).build()); } finally { dropTable(temporaryInsertIntoExistingPartitionTable); - dropTable(temporaryInsertIntoExistingPartitionTableForPartitionCommit); + dropTable(temporaryInsertIntoExistingPartitionTableForPageSinkCommit); } } } @@ -3696,8 +3696,8 @@ protected void doCreateTable(SchemaTableName tableName, HiveStorageFormat storag sink.appendPage(CREATE_TABLE_DATA.toPage()); Collection fragments = getFutureValue(sink.finish()); - if (pageSinkProperties.isPartitionCommitRequired()) { - assertValidPartitionCommitFragments(fragments); + if (pageSinkProperties.isCommitRequired()) { + assertValidPageSinkCommitFragments(fragments); metadata.commitPartitionAsync(session, outputHandle, fragments).get(); } @@ -3865,8 +3865,8 @@ private void doInsert(HiveStorageFormat storageFormat, SchemaTableName tableName sink.appendPage(CREATE_TABLE_DATA.toPage()); sink.appendPage(CREATE_TABLE_DATA.toPage()); Collection fragments = getFutureValue(sink.finish()); - if (pageSinkProperties.isPartitionCommitRequired()) { - assertValidPartitionCommitFragments(fragments); + if (pageSinkProperties.isCommitRequired()) { + assertValidPageSinkCommitFragments(fragments); metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); @@ -4088,8 +4088,8 @@ private void doInsertIntoNewPartition(HiveStorageFormat storageFormat, SchemaTab ConnectorPageSink sink = pageSinkProvider.createPageSink(transaction.getTransactionHandle(), session, insertTableHandle, pageSinkProperties); sink.appendPage(CREATE_TABLE_PARTITIONED_DATA_2ND.toPage()); Collection fragments = getFutureValue(sink.finish()); - if (pageSinkProperties.isPartitionCommitRequired()) { - assertValidPartitionCommitFragments(fragments); + if (pageSinkProperties.isCommitRequired()) { + assertValidPageSinkCommitFragments(fragments); metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); @@ -4207,8 +4207,8 @@ private void doInsertIntoExistingPartition(HiveStorageFormat storageFormat, Sche sink.appendPage(CREATE_TABLE_PARTITIONED_DATA.toPage()); sink.appendPage(CREATE_TABLE_PARTITIONED_DATA.toPage()); Collection fragments = getFutureValue(sink.finish()); - if (pageSinkProperties.isPartitionCommitRequired()) { - assertValidPartitionCommitFragments(fragments); + if (pageSinkProperties.isCommitRequired()) { + assertValidPageSinkCommitFragments(fragments); metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); @@ -4260,7 +4260,7 @@ private void doInsertIntoExistingPartition(HiveStorageFormat storageFormat, Sche } } - private static void assertValidPartitionCommitFragments(Collection fragments) + private static void assertValidPageSinkCommitFragments(Collection fragments) { fragments.stream() .map(Slice::getBytes) diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSinkProvider.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSinkProvider.java index 15ec8717474df..b86d235a8b51a 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSinkProvider.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSinkProvider.java @@ -40,7 +40,7 @@ public KuduPageSinkProvider(KuduClientSession clientSession) @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle outputTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Kudu connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Kudu connector does not support page sink commit"); requireNonNull(outputTableHandle, "outputTableHandle is null"); checkArgument(outputTableHandle instanceof KuduOutputTableHandle, "outputTableHandle is not an instance of KuduOutputTableHandle"); KuduOutputTableHandle handle = (KuduOutputTableHandle) outputTableHandle; @@ -51,7 +51,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle insertTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Kudu connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Kudu connector does not support page sink commit"); requireNonNull(insertTableHandle, "insertTableHandle is null"); checkArgument(insertTableHandle instanceof KuduInsertTableHandle, "insertTableHandle is not an instance of KuduInsertTableHandle"); KuduInsertTableHandle handle = (KuduInsertTableHandle) insertTableHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java index 8a67c09efefb3..f702aee293188 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java @@ -125,10 +125,10 @@ public Operator createOperator(DriverContext driverContext) private ConnectorPageSink createPageSink() { if (target instanceof CreateHandle) { - return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle(), PageSinkProperties.builder().setPartitionCommitRequired(partitionCommitRequired).build()); + return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle(), PageSinkProperties.builder().setCommitRequired(partitionCommitRequired).build()); } if (target instanceof InsertHandle) { - return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle(), PageSinkProperties.builder().setPartitionCommitRequired(partitionCommitRequired).build()); + return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle(), PageSinkProperties.builder().setCommitRequired(partitionCommitRequired).build()); } throw new UnsupportedOperationException("Unhandled target type: " + target.getClass().getName()); } diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java index c50564efbd566..c6a793fff1f98 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java @@ -59,7 +59,7 @@ public MemoryPageSinkProvider(MemoryPagesStore pagesStore, HostAddress currentHo @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle outputTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Memory connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Memory connector does not support page sink commit"); MemoryOutputTableHandle memoryOutputTableHandle = (MemoryOutputTableHandle) outputTableHandle; MemoryTableHandle tableHandle = memoryOutputTableHandle.getTable(); @@ -74,7 +74,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle insertTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Memory connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Memory connector does not support page sink commit"); MemoryInsertTableHandle memoryInsertTableHandle = (MemoryInsertTableHandle) insertTableHandle; MemoryTableHandle tableHandle = memoryInsertTableHandle.getTable(); diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSinkProvider.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSinkProvider.java index 02af3030c0da2..e80cb1341ae68 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSinkProvider.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSinkProvider.java @@ -41,7 +41,7 @@ public MongoPageSinkProvider(MongoClientConfig config, MongoSession mongoSession @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle outputTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Mongo connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Mongo connector does not support page sink commit"); MongoOutputTableHandle handle = (MongoOutputTableHandle) outputTableHandle; return new MongoPageSink(config, mongoSession, session, handle.getSchemaTableName(), handle.getColumns()); @@ -50,7 +50,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle insertTableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Mongo connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Mongo connector does not support page sink commit"); MongoInsertTableHandle handle = (MongoInsertTableHandle) insertTableHandle; return new MongoPageSink(config, mongoSession, session, handle.getSchemaTableName(), handle.getColumns()); diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSinkProvider.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSinkProvider.java index 3406e48f6ec1b..2db3ae8770e18 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSinkProvider.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSinkProvider.java @@ -55,7 +55,7 @@ public RaptorPageSinkProvider(StorageManager storageManager, PageSorter pageSort @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorOutputTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Raptor connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Raptor connector does not support page sink commit"); RaptorOutputTableHandle handle = (RaptorOutputTableHandle) tableHandle; return new RaptorPageSink( @@ -78,7 +78,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHa @Override public ConnectorPageSink createPageSink(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorInsertTableHandle tableHandle, PageSinkProperties pageSinkProperties) { - checkArgument(!pageSinkProperties.isPartitionCommitRequired(), "Raptor connector does not support partition commit"); + checkArgument(!pageSinkProperties.isCommitRequired(), "Raptor connector does not support page sink commit"); RaptorInsertTableHandle handle = (RaptorInsertTableHandle) tableHandle; return new RaptorPageSink( diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageSinkProperties.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageSinkProperties.java index 75adb8f0157d4..6d7abde376567 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageSinkProperties.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageSinkProperties.java @@ -17,11 +17,11 @@ public class PageSinkProperties { private static final PageSinkProperties DEFAULT_PAGE_SINK_PROPERTIES = PageSinkProperties.builder().build(); - private final boolean partitionCommitRequired; + private final boolean commitRequired; - private PageSinkProperties(boolean partitionCommitRequired) + private PageSinkProperties(boolean commitRequired) { - this.partitionCommitRequired = partitionCommitRequired; + this.commitRequired = commitRequired; } public static PageSinkProperties defaultProperties() @@ -29,9 +29,9 @@ public static PageSinkProperties defaultProperties() return DEFAULT_PAGE_SINK_PROPERTIES; } - public boolean isPartitionCommitRequired() + public boolean isCommitRequired() { - return partitionCommitRequired; + return commitRequired; } public static Builder builder() @@ -41,17 +41,17 @@ public static Builder builder() public static final class Builder { - private boolean partitionCommitRequired; + private boolean commitRequired; - public Builder setPartitionCommitRequired(boolean partitionCommitRequired) + public Builder setCommitRequired(boolean commitRequired) { - this.partitionCommitRequired = partitionCommitRequired; + this.commitRequired = commitRequired; return this; } public PageSinkProperties build() { - return new PageSinkProperties(partitionCommitRequired); + return new PageSinkProperties(commitRequired); } } } From 8df52544dbda9aa23d0379c39ca84df3673c565e Mon Sep 17 00:00:00 2001 From: Andrii Rosa Date: Wed, 22 Apr 2020 13:10:53 -0400 Subject: [PATCH 023/129] Rename partition / lifespan commit into page sink commit It can be used not only to commit lifespans or physical partitions. In fact it can be used to commit any page sink write. --- .../facebook/presto/hive/HiveConnector.java | 4 +-- .../facebook/presto/hive/HiveMetadata.java | 4 +-- .../presto/hive/HivePageSinkProvider.java | 4 +-- .../presto/hive/HiveWriterFactory.java | 4 +-- .../presto/hive/AbstractTestHiveClient.java | 8 +++--- .../facebook/presto/metadata/Metadata.java | 8 +++--- .../presto/metadata/MetadataManager.java | 8 +++--- .../presto/operator/TableFinishOperator.java | 26 ++++++++--------- .../sql/planner/LocalExecutionPlanner.java | 10 +++---- .../presto/sql/planner/PlanFragmenter.java | 4 +-- .../presto/metadata/AbstractMockMetadata.java | 4 +-- .../operator/TestTableFinishOperator.java | 28 +++++++++---------- .../spi/connector/ConnectorCapabilities.java | 2 +- .../spi/connector/ConnectorMetadata.java | 16 +++++------ .../ClassLoaderSafeConnectorMetadata.java | 8 +++--- 15 files changed, 69 insertions(+), 69 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnector.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnector.java index ba567b7395262..c0265bd72867c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnector.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnector.java @@ -38,7 +38,7 @@ import java.util.Set; import java.util.function.Supplier; -import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PARTITION_COMMIT; +import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PAGE_SINK_COMMIT; import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_REWINDABLE_SPLIT_SOURCE; import static com.facebook.presto.spi.transaction.IsolationLevel.READ_UNCOMMITTED; import static com.facebook.presto.spi.transaction.IsolationLevel.checkConnectorSupports; @@ -236,6 +236,6 @@ public final void shutdown() @Override public Set getCapabilities() { - return ImmutableSet.of(SUPPORTS_REWINDABLE_SPLIT_SOURCE, SUPPORTS_PARTITION_COMMIT); + return ImmutableSet.of(SUPPORTS_REWINDABLE_SPLIT_SOURCE, SUPPORTS_PAGE_SINK_COMMIT); } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 763a6da795eec..1800fcc61c866 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -2550,14 +2550,14 @@ public List listTablePrivileges(ConnectorSession session, SchemaTable } @Override - public CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) + public CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) { HiveOutputTableHandle handle = (HiveOutputTableHandle) tableHandle; return toCompletableFuture(stagingFileCommitter.commitFiles(session, handle.getSchemaName(), handle.getTableName(), getPartitionUpdates(fragments))); } @Override - public CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) + public CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) { HiveInsertTableHandle handle = (HiveInsertTableHandle) tableHandle; return toCompletableFuture(stagingFileCommitter.commitFiles(session, handle.getSchemaName(), handle.getTableName(), getPartitionUpdates(fragments))); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java index d8cf993b75916..8b4cde6b6cfea 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java @@ -123,7 +123,7 @@ public ConnectorPageSink createPageSink(ConnectorTransactionHandle transaction, return createPageSink(handle, false, session, pageSinkProperties.isCommitRequired()); } - private ConnectorPageSink createPageSink(HiveWritableTableHandle handle, boolean isCreateTable, ConnectorSession session, boolean partitionCommitRequired) + private ConnectorPageSink createPageSink(HiveWritableTableHandle handle, boolean isCreateTable, ConnectorSession session, boolean commitRequired) { OptionalInt bucketCount = OptionalInt.empty(); List sortedBy; @@ -165,7 +165,7 @@ private ConnectorPageSink createPageSink(HiveWritableTableHandle handle, boolean hiveSessionProperties, hiveWriterStats, orcFileWriterFactory, - partitionCommitRequired); + commitRequired); return new HivePageSink( writerFactory, diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java index e377645e87293..39b0d2c695d8e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java @@ -165,7 +165,7 @@ public HiveWriterFactory( HiveSessionProperties hiveSessionProperties, HiveWriterStats hiveWriterStats, OrcFileWriterFactory orcFileWriterFactory, - boolean partitionCommitRequired) + boolean commitRequired) { this.fileWriterFactories = ImmutableSet.copyOf(requireNonNull(fileWriterFactories, "fileWriterFactories is null")); this.schemaName = requireNonNull(schemaName, "schemaName is null"); @@ -291,7 +291,7 @@ public HiveWriterFactory( // In Hive connector, bucket commit is fulfilled by writing to temporary file in TableWriterOperator, and rename in TableFinishOpeartor // (note Presto partition here loosely maps to Hive bucket) - this.writeToTempFile = partitionCommitRequired; + this.writeToTempFile = commitRequired; } public HiveWriter createWriter(Page partitionColumns, int position, OptionalInt bucketNumber) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index a61b96aa30f31..7ce97f6c28adc 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -3698,7 +3698,7 @@ protected void doCreateTable(SchemaTableName tableName, HiveStorageFormat storag if (pageSinkProperties.isCommitRequired()) { assertValidPageSinkCommitFragments(fragments); - metadata.commitPartitionAsync(session, outputHandle, fragments).get(); + metadata.commitPageSinkAsync(session, outputHandle, fragments).get(); } // verify all new files start with the unique prefix @@ -3867,7 +3867,7 @@ private void doInsert(HiveStorageFormat storageFormat, SchemaTableName tableName Collection fragments = getFutureValue(sink.finish()); if (pageSinkProperties.isCommitRequired()) { assertValidPageSinkCommitFragments(fragments); - metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); + metadata.commitPageSinkAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); @@ -4090,7 +4090,7 @@ private void doInsertIntoNewPartition(HiveStorageFormat storageFormat, SchemaTab Collection fragments = getFutureValue(sink.finish()); if (pageSinkProperties.isCommitRequired()) { assertValidPageSinkCommitFragments(fragments); - metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); + metadata.commitPageSinkAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); @@ -4209,7 +4209,7 @@ private void doInsertIntoExistingPartition(HiveStorageFormat storageFormat, Sche Collection fragments = getFutureValue(sink.finish()); if (pageSinkProperties.isCommitRequired()) { assertValidPageSinkCommitFragments(fragments); - metadata.commitPartitionAsync(session, insertTableHandle, fragments).get(); + metadata.commitPageSinkAsync(session, insertTableHandle, fragments).get(); } metadata.finishInsert(session, insertTableHandle, fragments, ImmutableList.of()); diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java index 13f6fbbffd7fb..d1fcca43f2cb9 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java @@ -420,16 +420,16 @@ public interface Metadata List listTablePrivileges(Session session, QualifiedTablePrefix prefix); /** - * Commits partition for table creation. + * Commits page sink for table creation. */ @Experimental - ListenableFuture commitPartitionAsync(Session session, OutputTableHandle tableHandle, Collection fragments); + ListenableFuture commitPageSinkAsync(Session session, OutputTableHandle tableHandle, Collection fragments); /** - * Commits partition for table insertion. + * Commits page sink for table insertion. */ @Experimental - ListenableFuture commitPartitionAsync(Session session, InsertTableHandle tableHandle, Collection fragments); + ListenableFuture commitPageSinkAsync(Session session, InsertTableHandle tableHandle, Collection fragments); FunctionManager getFunctionManager(); diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java index 20fe5e7518b3b..602a3dd9635d5 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java @@ -1174,25 +1174,25 @@ public List listTablePrivileges(Session session, QualifiedTablePrefix } @Override - public ListenableFuture commitPartitionAsync(Session session, OutputTableHandle tableHandle, Collection fragments) + public ListenableFuture commitPageSinkAsync(Session session, OutputTableHandle tableHandle, Collection fragments) { ConnectorId connectorId = tableHandle.getConnectorId(); CatalogMetadata catalogMetadata = getCatalogMetadata(session, connectorId); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); - return toListenableFuture(metadata.commitPartitionAsync(connectorSession, tableHandle.getConnectorHandle(), fragments)); + return toListenableFuture(metadata.commitPageSinkAsync(connectorSession, tableHandle.getConnectorHandle(), fragments)); } @Override - public ListenableFuture commitPartitionAsync(Session session, InsertTableHandle tableHandle, Collection fragments) + public ListenableFuture commitPageSinkAsync(Session session, InsertTableHandle tableHandle, Collection fragments) { ConnectorId connectorId = tableHandle.getConnectorId(); CatalogMetadata catalogMetadata = getCatalogMetadata(session, connectorId); ConnectorMetadata metadata = catalogMetadata.getMetadata(); ConnectorSession connectorSession = session.toConnectorSession(connectorId); - return toListenableFuture(metadata.commitPartitionAsync(connectorSession, tableHandle.getConnectorHandle(), fragments)); + return toListenableFuture(metadata.commitPageSinkAsync(connectorSession, tableHandle.getConnectorHandle(), fragments)); } @Override diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java index e0cc8148d160d..4dd8b2b10527c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java @@ -71,7 +71,7 @@ public static class TableFinishOperatorFactory private final int operatorId; private final PlanNodeId planNodeId; private final TableFinisher tableFinisher; - private final LifespanCommitter lifespanCommitter; + private final PageSinkCommitter pageSinkCommitter; private final OperatorFactory statisticsAggregationOperatorFactory; private final StatisticAggregationsDescriptor descriptor; private final Session session; @@ -83,7 +83,7 @@ public TableFinishOperatorFactory( int operatorId, PlanNodeId planNodeId, TableFinisher tableFinisher, - LifespanCommitter lifespanCommitter, + PageSinkCommitter pageSinkCommitter, OperatorFactory statisticsAggregationOperatorFactory, StatisticAggregationsDescriptor descriptor, Session session, @@ -92,7 +92,7 @@ public TableFinishOperatorFactory( this.operatorId = operatorId; this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); this.tableFinisher = requireNonNull(tableFinisher, "tableFinisher is null"); - this.lifespanCommitter = requireNonNull(lifespanCommitter, "lifespanCommitter is null"); + this.pageSinkCommitter = requireNonNull(pageSinkCommitter, "pageSinkCommitter is null"); this.statisticsAggregationOperatorFactory = requireNonNull(statisticsAggregationOperatorFactory, "statisticsAggregationOperatorFactory is null"); this.descriptor = requireNonNull(descriptor, "descriptor is null"); this.session = requireNonNull(session, "session is null"); @@ -106,7 +106,7 @@ public Operator createOperator(DriverContext driverContext) OperatorContext context = driverContext.addOperatorContext(operatorId, planNodeId, TableFinishOperator.class.getSimpleName()); Operator statisticsAggregationOperator = statisticsAggregationOperatorFactory.createOperator(driverContext); boolean statisticsCpuTimerEnabled = !(statisticsAggregationOperator instanceof DevNullOperator) && isStatisticsCpuTimerEnabled(session); - return new TableFinishOperator(context, tableFinisher, lifespanCommitter, statisticsAggregationOperator, descriptor, statisticsCpuTimerEnabled, tableCommitContextCodec); + return new TableFinishOperator(context, tableFinisher, pageSinkCommitter, statisticsAggregationOperator, descriptor, statisticsCpuTimerEnabled, tableCommitContextCodec); } @Override @@ -118,7 +118,7 @@ public void noMoreOperators() @Override public OperatorFactory duplicate() { - return new TableFinishOperatorFactory(operatorId, planNodeId, tableFinisher, lifespanCommitter, statisticsAggregationOperatorFactory, descriptor, session, tableCommitContextCodec); + return new TableFinishOperatorFactory(operatorId, planNodeId, tableFinisher, pageSinkCommitter, statisticsAggregationOperatorFactory, descriptor, session, tableCommitContextCodec); } } @@ -145,7 +145,7 @@ private enum State public TableFinishOperator( OperatorContext operatorContext, TableFinisher tableFinisher, - LifespanCommitter lifespanCommitter, + PageSinkCommitter pageSinkCommitter, Operator statisticsAggregationOperator, StatisticAggregationsDescriptor descriptor, boolean statisticsCpuTimerEnabled, @@ -157,7 +157,7 @@ public TableFinishOperator( this.descriptor = requireNonNull(descriptor, "descriptor is null"); this.statisticsCpuTimerEnabled = statisticsCpuTimerEnabled; this.tableCommitContextCodec = requireNonNull(tableCommitContextCodec, "tableCommitContextCodec is null"); - this.lifespanAndStageStateTracker = new LifespanAndStageStateTracker(lifespanCommitter); + this.lifespanAndStageStateTracker = new LifespanAndStageStateTracker(pageSinkCommitter); operatorContext.setInfoSupplier(this::getInfo); } @@ -299,9 +299,9 @@ public interface TableFinisher Optional finishTable(Collection fragments, Collection computedStatistics); } - public interface LifespanCommitter + public interface PageSinkCommitter { - ListenableFuture commitLifespan(Collection fragments); + ListenableFuture commitAsync(Collection fragments); } // A lifespan in a stage defines the unit for commit and recovery in recoverable grouped execution @@ -314,12 +314,12 @@ private static class LifespanAndStageStateTracker private final Map> uncommittedRecoverableLifespanAndStageStates = new HashMap<>(); private final Map committedRecoverableLifespanAndStages = new HashMap<>(); - private final LifespanCommitter lifespanCommitter; + private final PageSinkCommitter pageSinkCommitter; private final List> commitFutures = new ArrayList<>(); - LifespanAndStageStateTracker(LifespanCommitter lifespanCommitter) + LifespanAndStageStateTracker(PageSinkCommitter pageSinkCommitter) { - this.lifespanCommitter = requireNonNull(lifespanCommitter, "lifespanCommitter is null"); + this.pageSinkCommitter = requireNonNull(pageSinkCommitter, "pageSinkCommitter is null"); } public void waitForAllLifespanCommitted() @@ -373,7 +373,7 @@ public void update(Page page, TableCommitContext tableCommitContext) LifespanAndStageState lifespanAndStageState = lifespanStageStatesPerTask.get(tableCommitContext.getTaskId()); committedRecoverableLifespanAndStages.put(lifespanAndStage, lifespanAndStageState); uncommittedRecoverableLifespanAndStageStates.remove(lifespanAndStage); - commitFutures.add(lifespanCommitter.commitLifespan(lifespanAndStageState.getFragments())); + commitFutures.add(pageSinkCommitter.commitAsync(lifespanAndStageState.getFragments())); } } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 78c2f0c924d54..753b158a069f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -75,7 +75,7 @@ import com.facebook.presto.operator.StatisticsWriterOperator.StatisticsWriterOperatorFactory; import com.facebook.presto.operator.StreamingAggregationOperator.StreamingAggregationOperatorFactory; import com.facebook.presto.operator.TableCommitContext; -import com.facebook.presto.operator.TableFinishOperator.LifespanCommitter; +import com.facebook.presto.operator.TableFinishOperator.PageSinkCommitter; import com.facebook.presto.operator.TableScanOperator.TableScanOperatorFactory; import com.facebook.presto.operator.TableWriterMergeOperator.TableWriterMergeOperatorFactory; import com.facebook.presto.operator.TaskContext; @@ -2452,7 +2452,7 @@ public PhysicalOperation visitTableFinish(TableFinishNode node, LocalExecutionPl context.getNextOperatorId(), node.getId(), createTableFinisher(session, metadata, writerTarget), - createLifespanCommitter(session, metadata, writerTarget), + createPageSinkCommitter(session, metadata, writerTarget), statisticsAggregation, descriptor, session, @@ -2907,14 +2907,14 @@ else if (target instanceof DeleteHandle) { }; } - private static LifespanCommitter createLifespanCommitter(Session session, Metadata metadata, ExecutionWriterTarget target) + private static PageSinkCommitter createPageSinkCommitter(Session session, Metadata metadata, ExecutionWriterTarget target) { return fragments -> { if (target instanceof CreateHandle) { - return metadata.commitPartitionAsync(session, ((CreateHandle) target).getHandle(), fragments); + return metadata.commitPageSinkAsync(session, ((CreateHandle) target).getHandle(), fragments); } else if (target instanceof InsertHandle) { - return metadata.commitPartitionAsync(session, ((InsertHandle) target).getHandle(), fragments); + return metadata.commitPageSinkAsync(session, ((InsertHandle) target).getHandle(), fragments); } else { throw new AssertionError("Unhandled target type: " + target.getClass().getName()); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java index d207a456b791b..23653624a4b86 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java @@ -97,7 +97,7 @@ import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.QUERY_HAS_TOO_MANY_STAGES; import static com.facebook.presto.spi.StandardWarningCode.TOO_MANY_STAGES; -import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PARTITION_COMMIT; +import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PAGE_SINK_COMMIT; import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_REWINDABLE_SPLIT_SOURCE; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; import static com.facebook.presto.spi.type.BigintType.BIGINT; @@ -1085,7 +1085,7 @@ public GroupedExecutionProperties visitTableWriter(TableWriterNode node, Void co boolean recoveryEligible = properties.isRecoveryEligible(); WriterTarget target = node.getTarget().orElseThrow(() -> new VerifyException("target is absent")); if (target instanceof CreateName || target instanceof InsertReference) { - recoveryEligible &= metadata.getConnectorCapabilities(session, target.getConnectorId()).contains(SUPPORTS_PARTITION_COMMIT); + recoveryEligible &= metadata.getConnectorCapabilities(session, target.getConnectorId()).contains(SUPPORTS_PAGE_SINK_COMMIT); } else { recoveryEligible = false; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java index fbc4a62a61175..1cc23b8d372b0 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java @@ -483,13 +483,13 @@ public List listTablePrivileges(Session session, QualifiedTablePrefix } @Override - public ListenableFuture commitPartitionAsync(Session session, OutputTableHandle tableHandle, Collection fragments) + public ListenableFuture commitPageSinkAsync(Session session, OutputTableHandle tableHandle, Collection fragments) { throw new UnsupportedOperationException(); } @Override - public ListenableFuture commitPartitionAsync(Session session, InsertTableHandle tableHandle, Collection fragments) + public ListenableFuture commitPageSinkAsync(Session session, InsertTableHandle tableHandle, Collection fragments) { throw new UnsupportedOperationException(); } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java index d3960e17d01a1..5dc3035eefc83 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java @@ -18,7 +18,7 @@ import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.operator.TableFinishOperator.LifespanCommitter; +import com.facebook.presto.operator.TableFinishOperator.PageSinkCommitter; import com.facebook.presto.operator.TableFinishOperator.TableFinishOperatorFactory; import com.facebook.presto.operator.TableFinishOperator.TableFinisher; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; @@ -97,7 +97,7 @@ public void testStatisticsAggregation() throws Exception { TestingTableFinisher tableFinisher = new TestingTableFinisher(); - TestingLifespanCommitter lifespanCommitter = new TestingLifespanCommitter(); + TestingPageSinkCommitter pageSinkCommitter = new TestingPageSinkCommitter(); ColumnStatisticMetadata statisticMetadata = new ColumnStatisticMetadata("column", MAX_VALUE); StatisticAggregationsDescriptor descriptor = new StatisticAggregationsDescriptor<>( ImmutableMap.of(), @@ -110,7 +110,7 @@ public void testStatisticsAggregation() 0, new PlanNodeId("node"), tableFinisher, - lifespanCommitter, + pageSinkCommitter, new AggregationOperator.AggregationOperatorFactory( 1, new PlanNodeId("test"), @@ -166,18 +166,18 @@ public void testStatisticsAggregation() assertThat(tableFinishInfo.getStatisticsWallTime().getValue(NANOSECONDS)).isGreaterThan(0); assertThat(tableFinishInfo.getStatisticsCpuTime().getValue(NANOSECONDS)).isGreaterThan(0); - assertTrue(lifespanCommitter.getCommittedFragments().isEmpty()); + assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); assertEquals(driverContext.getSystemMemoryUsage(), 0); assertEquals(driverContext.getMemoryUsage(), 0); } @Test - public void testLifespanCommit() + public void testTableWriteCommit() throws Exception { TestingTableFinisher tableFinisher = new TestingTableFinisher(); - TestingLifespanCommitter lifespanCommitter = new TestingLifespanCommitter(); + TestingPageSinkCommitter pageSinkCommitter = new TestingPageSinkCommitter(); ColumnStatisticMetadata statisticMetadata = new ColumnStatisticMetadata("column", MAX_VALUE); StatisticAggregationsDescriptor descriptor = new StatisticAggregationsDescriptor<>( ImmutableMap.of(), @@ -190,7 +190,7 @@ public void testLifespanCommit() 0, new PlanNodeId("node"), tableFinisher, - lifespanCommitter, + pageSinkCommitter, new AggregationOperator.AggregationOperatorFactory( 1, new PlanNodeId("test"), @@ -211,24 +211,24 @@ public void testLifespanCommit() // expect lifespan committer not to be called and stats operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, false), 1).build().get(0)); operator.addInput(rowPagesBuilder(inputTypes).row(3, new byte[] {2}, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, true), null).build().get(0)); - assertTrue(lifespanCommitter.getCommittedFragments().isEmpty()); + assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for unrecoverable grouped execution // expect lifespan committer not to be called operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, false, false), 4).build().get(0)); operator.addInput(rowPagesBuilder(inputTypes).row(6, new byte[] {5}, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, false, true), null).build().get(0)); - assertTrue(lifespanCommitter.getCommittedFragments().isEmpty()); + assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for failed recoverable grouped execution // expect lifespan committer not to be called and page ignored operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 2, true, false), 100).build().get(0)); - assertTrue(lifespanCommitter.getCommittedFragments().isEmpty()); + assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for successful recoverable grouped execution // expect lifespan committer to be called and pages published operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, true, false), 9).build().get(0)); operator.addInput(rowPagesBuilder(inputTypes).row(11, new byte[] {10}, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, true, true), null).build().get(0)); - assertEquals(getOnlyElement(lifespanCommitter.getCommittedFragments()), ImmutableList.of(Slices.wrappedBuffer(new byte[] {10}))); + assertEquals(getOnlyElement(pageSinkCommitter.getCommittedFragments()), ImmutableList.of(Slices.wrappedBuffer(new byte[] {10}))); assertThat(driverContext.getSystemMemoryUsage()).isGreaterThan(0); assertEquals(driverContext.getMemoryUsage(), 0); @@ -300,13 +300,13 @@ public Collection getComputedStatistics() } } - private static class TestingLifespanCommitter - implements LifespanCommitter + private static class TestingPageSinkCommitter + implements PageSinkCommitter { private List> fragmentsList = new ArrayList<>(); @Override - public ListenableFuture commitLifespan(Collection fragments) + public ListenableFuture commitAsync(Collection fragments) { fragmentsList.add(fragments); return immediateFuture(null); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorCapabilities.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorCapabilities.java index 69834f57dad64..8361e00924425 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorCapabilities.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorCapabilities.java @@ -17,5 +17,5 @@ public enum ConnectorCapabilities { NOT_NULL_COLUMN_CONSTRAINT, SUPPORTS_REWINDABLE_SPLIT_SOURCE, - SUPPORTS_PARTITION_COMMIT, + SUPPORTS_PAGE_SINK_COMMIT, } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java index 5778185017b99..dc8cd0f553341 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java @@ -677,24 +677,24 @@ default List listTablePrivileges(ConnectorSession session, SchemaTabl } /** - * Commits partition for table creation. - * To enable recoverable grouped execution, it is required that output connector supports partition commit. + * Commits page sink for table creation. + * To enable recoverable grouped execution, it is required that output connector supports page sink commit. * This method is unstable and subject to change in the future. */ @Experimental - default CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) + default CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) { - throw new PrestoException(NOT_SUPPORTED, "This connector does not support partition commit"); + throw new PrestoException(NOT_SUPPORTED, "This connector does not support page sink commit"); } /** - * Commits partition for table insertion. - * To enable recoverable grouped execution, it is required that output connector supports partition commit. + * Commits page sink for table insertion. + * To enable recoverable grouped execution, it is required that output connector supports page sink commit. * This method is unstable and subject to change in the future. */ @Experimental - default CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) + default CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) { - throw new PrestoException(NOT_SUPPORTED, "This connector does not support partition commit"); + throw new PrestoException(NOT_SUPPORTED, "This connector does not support page sink commit"); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java index e815aa3a1d149..5fac4ec1adc4d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java @@ -609,18 +609,18 @@ public List listTablePrivileges(ConnectorSession session, SchemaTable } @Override - public CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) + public CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorOutputTableHandle tableHandle, Collection fragments) { try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) { - return delegate.commitPartitionAsync(session, tableHandle, fragments); + return delegate.commitPageSinkAsync(session, tableHandle, fragments); } } @Override - public CompletableFuture commitPartitionAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) + public CompletableFuture commitPageSinkAsync(ConnectorSession session, ConnectorInsertTableHandle tableHandle, Collection fragments) { try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(classLoader)) { - return delegate.commitPartitionAsync(session, tableHandle, fragments); + return delegate.commitPageSinkAsync(session, tableHandle, fragments); } } } From c93c8ce8dcd3763b79eeb3f947f17058345ce54f Mon Sep 17 00:00:00 2001 From: Wenlei Xie Date: Wed, 22 Apr 2020 13:10:54 -0400 Subject: [PATCH 024/129] Introduce PageSinkCommitStrategy Co-authored-by: Andrii Rosa --- .../presto/operator/DeleteOperator.java | 3 +- .../operator/PageSinkCommitStrategy.java | 33 +++++++++++++++++++ .../presto/operator/TableCommitContext.java | 12 +++---- .../presto/operator/TableFinishOperator.java | 5 +-- .../operator/TableWriterMergeOperator.java | 4 +-- .../presto/operator/TableWriterOperator.java | 25 +++++++------- .../sql/planner/LocalExecutionPlanner.java | 5 ++- .../operator/TestTableFinishOperator.java | 29 +++++++++------- .../operator/TestTableWriterOperator.java | 10 ++++-- 9 files changed, 90 insertions(+), 36 deletions(-) create mode 100644 presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java index 47d925b184ce1..a2c0b416c3f44 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java @@ -30,6 +30,7 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.concurrent.MoreFutures.toListenableFuture; +import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkState; @@ -191,7 +192,7 @@ public Page getOutput() new TableCommitContext( operatorContext.getDriverContext().getLifespan(), taskId, - false, + NO_COMMIT, true))); return new Page(positionCount, rowsBuilder.build(), fragmentBuilder.build(), RunLengthEncodedBlock.create(VARBINARY, tableCommitContext, positionCount)); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java new file mode 100644 index 0000000000000..f179b37a53474 --- /dev/null +++ b/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java @@ -0,0 +1,33 @@ +/* + * 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 com.facebook.presto.operator; + +public enum PageSinkCommitStrategy +{ + NO_COMMIT(false), + LIFESPAN_COMMIT(true), + /**/; + + private final boolean commitRequired; + + PageSinkCommitStrategy(boolean commitRequired) + { + this.commitRequired = commitRequired; + } + + public boolean isCommitRequired() + { + return commitRequired; + } +} diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableCommitContext.java b/presto-main/src/main/java/com/facebook/presto/operator/TableCommitContext.java index b6a67181b5721..1b7c67c3a512a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableCommitContext.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableCommitContext.java @@ -25,19 +25,19 @@ public class TableCommitContext { private final Lifespan lifespan; private final TaskId taskId; - private final boolean lifespanCommitRequired; + private final PageSinkCommitStrategy pageSinkCommitStrategy; private final boolean lastPage; @JsonCreator public TableCommitContext( @JsonProperty("lifespan") Lifespan lifespan, @JsonProperty("taskId") TaskId taskId, - @JsonProperty("lifespanCommitRequired") boolean lifespanCommitRequired, + @JsonProperty("pageSinkCommitStrategy") PageSinkCommitStrategy pageSinkCommitStrategy, @JsonProperty("lastPage") boolean lastPage) { this.lifespan = requireNonNull(lifespan, "lifespan is null"); this.taskId = requireNonNull(taskId, "taskId is null"); - this.lifespanCommitRequired = lifespanCommitRequired; + this.pageSinkCommitStrategy = requireNonNull(pageSinkCommitStrategy, "pageSinkCommitStrategy is null"); this.lastPage = lastPage; } @@ -54,9 +54,9 @@ public TaskId getTaskId() } @JsonProperty - public boolean isLifespanCommitRequired() + public PageSinkCommitStrategy getPageSinkCommitStrategy() { - return lifespanCommitRequired; + return pageSinkCommitStrategy; } @JsonProperty @@ -71,7 +71,7 @@ public String toString() return toStringHelper(this) .add("lifespan", lifespan) .add("taskId", taskId) - .add("lifespanCommitRequired", lifespanCommitRequired) + .add("pageSinkCommitStrategy", pageSinkCommitStrategy) .add("lastPage", lastPage) .toString(); } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java index 4dd8b2b10527c..4ea447970a2f7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java @@ -43,6 +43,7 @@ import java.util.stream.Stream; import static com.facebook.presto.SystemSessionProperties.isStatisticsCpuTimerEnabled; +import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; import static com.facebook.presto.operator.TableWriterUtils.FRAGMENT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.ROW_COUNT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.extractStatisticsRows; @@ -347,7 +348,7 @@ public void update(Page page, TableCommitContext tableCommitContext) // Case 1: lifespan commit is not required, this can be one of the following cases: // - The source fragment is ungrouped execution (lifespan is TASK_WIDE). // - The source fragment is grouped execution but not recoverable. - if (!tableCommitContext.isLifespanCommitRequired()) { + if (tableCommitContext.getPageSinkCommitStrategy() == NO_COMMIT) { unrecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); return; } @@ -380,7 +381,7 @@ public void update(Page page, TableCommitContext tableCommitContext) List getStatisticsPagesToProcess(Page page, TableCommitContext tableCommitContext) { LifespanAndStage lifespanAndStage = LifespanAndStage.fromTableCommitContext(tableCommitContext); - if (!tableCommitContext.isLifespanCommitRequired()) { + if (tableCommitContext.getPageSinkCommitStrategy() == NO_COMMIT) { return extractStatisticsRows(page).map(ImmutableList::of).orElse(ImmutableList.of()); } if (!committedRecoverableLifespanAndStages.containsKey(lifespanAndStage)) { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java index 23166a47c4f4d..152f173e35481 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java @@ -223,7 +223,7 @@ private static boolean isSameTaskAndLifespan(TableCommitContext first, TableComm { return first.getLifespan().equals(second.getLifespan()) && first.getTaskId().equals(second.getTaskId()) && - first.isLifespanCommitRequired() == second.isLifespanCommitRequired(); + first.getPageSinkCommitStrategy() == second.getPageSinkCommitStrategy(); } private long getRetainedMemoryBytes() @@ -313,7 +313,7 @@ private Slice createTableCommitContext(boolean lastPage) return wrappedBuffer(tableCommitContextCodec.toJsonBytes(new TableCommitContext( lastTableCommitContext.getLifespan(), lastTableCommitContext.getTaskId(), - lastTableCommitContext.isLifespanCommitRequired(), + lastTableCommitContext.getPageSinkCommitStrategy(), lastPage))); } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java index f702aee293188..20526270029d1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java @@ -75,7 +75,7 @@ public static class TableWriterOperatorFactory private final Session session; private final OperatorFactory statisticsAggregationOperatorFactory; private final List types; - private final boolean partitionCommitRequired; + private final PageSinkCommitStrategy pageSinkCommitStrategy; private boolean closed; private final JsonCodec tableCommitContextCodec; @@ -89,7 +89,7 @@ public TableWriterOperatorFactory( OperatorFactory statisticsAggregationOperatorFactory, List types, JsonCodec tableCommitContextCodec, - boolean partitionCommitRequired) + PageSinkCommitStrategy pageSinkCommitStrategy) { this.operatorId = operatorId; this.planNodeId = requireNonNull(planNodeId, "planNodeId is null"); @@ -101,7 +101,7 @@ public TableWriterOperatorFactory( this.statisticsAggregationOperatorFactory = requireNonNull(statisticsAggregationOperatorFactory, "statisticsAggregationOperatorFactory is null"); this.types = ImmutableList.copyOf(requireNonNull(types, "types is null")); this.tableCommitContextCodec = requireNonNull(tableCommitContextCodec, "tableCommitContextCodec is null"); - this.partitionCommitRequired = partitionCommitRequired; + this.pageSinkCommitStrategy = requireNonNull(pageSinkCommitStrategy, "pageSinkCommitStrategy is null"); } @Override @@ -119,16 +119,19 @@ public Operator createOperator(DriverContext driverContext) types, statisticsCpuTimerEnabled, tableCommitContextCodec, - partitionCommitRequired); + pageSinkCommitStrategy); } private ConnectorPageSink createPageSink() { + PageSinkProperties pageSinkProperties = PageSinkProperties.builder() + .setCommitRequired(pageSinkCommitStrategy.isCommitRequired()) + .build(); if (target instanceof CreateHandle) { - return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle(), PageSinkProperties.builder().setCommitRequired(partitionCommitRequired).build()); + return pageSinkManager.createPageSink(session, ((CreateHandle) target).getHandle(), pageSinkProperties); } if (target instanceof InsertHandle) { - return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle(), PageSinkProperties.builder().setCommitRequired(partitionCommitRequired).build()); + return pageSinkManager.createPageSink(session, ((InsertHandle) target).getHandle(), pageSinkProperties); } throw new UnsupportedOperationException("Unhandled target type: " + target.getClass().getName()); } @@ -142,7 +145,7 @@ public void noMoreOperators() @Override public OperatorFactory duplicate() { - return new TableWriterOperatorFactory(operatorId, planNodeId, pageSinkManager, target, columnChannels, session, statisticsAggregationOperatorFactory, types, tableCommitContextCodec, partitionCommitRequired); + return new TableWriterOperatorFactory(operatorId, planNodeId, pageSinkManager, target, columnChannels, session, statisticsAggregationOperatorFactory, types, tableCommitContextCodec, pageSinkCommitStrategy); } } @@ -171,7 +174,7 @@ private enum State private final boolean statisticsCpuTimerEnabled; private final JsonCodec tableCommitContextCodec; - private final boolean partitionCommitRequired; + private final PageSinkCommitStrategy pageSinkCommitStrategy; public TableWriterOperator( OperatorContext operatorContext, @@ -181,7 +184,7 @@ public TableWriterOperator( List types, boolean statisticsCpuTimerEnabled, JsonCodec tableCommitContextCodec, - boolean partitionCommitRequired) + PageSinkCommitStrategy pageSinkCommitStrategy) { this.operatorContext = requireNonNull(operatorContext, "operatorContext is null"); this.pageSinkMemoryContext = operatorContext.newLocalSystemMemoryContext(TableWriterOperator.class.getSimpleName()); @@ -192,7 +195,7 @@ public TableWriterOperator( this.types = ImmutableList.copyOf(requireNonNull(types, "types is null")); this.statisticsCpuTimerEnabled = statisticsCpuTimerEnabled; this.tableCommitContextCodec = requireNonNull(tableCommitContextCodec, "tableCommitContextCodec is null"); - this.partitionCommitRequired = partitionCommitRequired; + this.pageSinkCommitStrategy = requireNonNull(pageSinkCommitStrategy, "pageSinkCommitStrategy is null"); } @Override @@ -344,7 +347,7 @@ private Slice createTableCommitContext(boolean lastPage) new TableCommitContext( operatorContext.getDriverContext().getLifespan(), taskId, - partitionCommitRequired, + pageSinkCommitStrategy, lastPage))); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 753b158a069f1..df3633e33e607 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -58,6 +58,7 @@ import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory; import com.facebook.presto.operator.OutputFactory; +import com.facebook.presto.operator.PageSinkCommitStrategy; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.PagesSpatialIndexFactory; import com.facebook.presto.operator.PartitionFunction; @@ -2322,7 +2323,9 @@ public PhysicalOperation visitTableWriter(TableWriterNode node, LocalExecutionPl statisticsAggregation, getVariableTypes(node.getOutputVariables()), tableCommitContextCodec, - stageExecutionDescriptor.isRecoverableGroupedExecution()); + stageExecutionDescriptor.isRecoverableGroupedExecution() + ? PageSinkCommitStrategy.LIFESPAN_COMMIT + : PageSinkCommitStrategy.NO_COMMIT); return new PhysicalOperation(operatorFactory, outputMapping.build(), context, source); } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java index 5dc3035eefc83..3d9e709dc0221 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java @@ -52,6 +52,8 @@ import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; +import static com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT; +import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; import static com.facebook.presto.operator.TableWriterUtils.STATS_START_CHANNEL; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MAX_VALUE; import static com.facebook.presto.spi.type.BigintType.BIGINT; @@ -127,10 +129,10 @@ public void testStatisticsAggregation() List inputTypes = ImmutableList.of(BIGINT, VARBINARY, VARBINARY, BIGINT); - byte[] tableCommitContextForStatsPage = getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, false); + byte[] tableCommitContextForStatsPage = getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, NO_COMMIT, false); operator.addInput(rowPagesBuilder(inputTypes).row(null, null, tableCommitContextForStatsPage, 6).build().get(0)); operator.addInput(rowPagesBuilder(inputTypes).row(null, null, tableCommitContextForStatsPage, 7).build().get(0)); - byte[] tableCommitContextForFragmentsPage = getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, true); + byte[] tableCommitContextForFragmentsPage = getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, NO_COMMIT, true); operator.addInput(rowPagesBuilder(inputTypes).row(4, new byte[] {1}, tableCommitContextForFragmentsPage, null).build().get(0)); operator.addInput(rowPagesBuilder(inputTypes).row(5, new byte[] {2}, tableCommitContextForFragmentsPage, null).build().get(0)); @@ -209,25 +211,25 @@ public void testTableWriteCommit() // pages for non-grouped execution // expect lifespan committer not to be called and stats - operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, false), 1).build().get(0)); - operator.addInput(rowPagesBuilder(inputTypes).row(3, new byte[] {2}, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, false, true), null).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, NO_COMMIT, false), 1).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(3, new byte[] {2}, getTableCommitContextBytes(Lifespan.taskWide(), 0, 0, NO_COMMIT, true), null).build().get(0)); assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for unrecoverable grouped execution // expect lifespan committer not to be called - operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, false, false), 4).build().get(0)); - operator.addInput(rowPagesBuilder(inputTypes).row(6, new byte[] {5}, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, false, true), null).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, NO_COMMIT, false), 4).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(6, new byte[] {5}, getTableCommitContextBytes(Lifespan.driverGroup(1), 1, 1, NO_COMMIT, true), null).build().get(0)); assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for failed recoverable grouped execution // expect lifespan committer not to be called and page ignored - operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 2, true, false), 100).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 2, LIFESPAN_COMMIT, false), 100).build().get(0)); assertTrue(pageSinkCommitter.getCommittedFragments().isEmpty()); // pages for successful recoverable grouped execution // expect lifespan committer to be called and pages published - operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, true, false), 9).build().get(0)); - operator.addInput(rowPagesBuilder(inputTypes).row(11, new byte[] {10}, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, true, true), null).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(null, null, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, LIFESPAN_COMMIT, false), 9).build().get(0)); + operator.addInput(rowPagesBuilder(inputTypes).row(11, new byte[] {10}, getTableCommitContextBytes(Lifespan.driverGroup(2), 2, 3, LIFESPAN_COMMIT, true), null).build().get(0)); assertEquals(getOnlyElement(pageSinkCommitter.getCommittedFragments()), ImmutableList.of(Slices.wrappedBuffer(new byte[] {10}))); assertThat(driverContext.getSystemMemoryUsage()).isGreaterThan(0); @@ -267,9 +269,14 @@ public void testTableWriteCommit() assertEquals(driverContext.getMemoryUsage(), 0); } - private static byte[] getTableCommitContextBytes(Lifespan lifespan, int stageId, int taskId, boolean lifespanCommitRequired, boolean lastPage) + private static byte[] getTableCommitContextBytes(Lifespan lifespan, int stageId, int taskId, PageSinkCommitStrategy pageSinkCommitStrategy, boolean lastPage) { - return TABLE_COMMIT_CONTEXT_CODEC.toJsonBytes(new TableCommitContext(lifespan, new TaskId("query", stageId, 0, taskId), lifespanCommitRequired, lastPage)); + return TABLE_COMMIT_CONTEXT_CODEC.toJsonBytes( + new TableCommitContext( + lifespan, + new TaskId("query", stageId, 0, taskId), + pageSinkCommitStrategy, + lastPage)); } private static class TestingTableFinisher diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java index 1cfd2482ef5a3..e3a47c19dc223 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java @@ -62,6 +62,7 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; +import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; @@ -256,7 +257,12 @@ public void testStatisticsAggregation() private static Slice getTableCommitContext(boolean lastPage) { - return wrappedBuffer(TABLE_COMMIT_CONTEXT_CODEC.toJsonBytes(new TableCommitContext(Lifespan.taskWide(), new TaskId("query", 0, 0, 0), false, lastPage))); + return wrappedBuffer(TABLE_COMMIT_CONTEXT_CODEC.toJsonBytes( + new TableCommitContext( + Lifespan.taskWide(), + new TaskId("query", 0, 0, 0), + NO_COMMIT, + lastPage))); } private void assertMemoryIsReleased(TableWriterOperator tableWriterOperator) @@ -318,7 +324,7 @@ private Operator createTableWriterOperator( statisticsAggregation, outputTypes, TABLE_COMMIT_CONTEXT_CODEC, - false); + NO_COMMIT); return factory.createOperator(driverContext); } From 2bfddd03187f5e81da333fe31fbf5ece21607d68 Mon Sep 17 00:00:00 2001 From: Wenlei Xie Date: Wed, 22 Apr 2020 13:10:56 -0400 Subject: [PATCH 025/129] Support table write commit in Presto on Spark Tasks in spark are often retried and run speculatively, thus the commit protocol required for table writes to avoid data corruption Co-authored-by: Andrii Rosa --- .../operator/PageSinkCommitStrategy.java | 1 + .../presto/operator/TableFinishOperator.java | 95 +++++++++++-------- .../sql/planner/LocalExecutionPlanner.java | 36 +++++-- .../presto/testing/LocalQueryRunner.java | 3 +- .../PrestoSparkTaskExecutorFactory.java | 3 +- .../planner/PrestoSparkSplitEnumerator.java | 37 +++++++- .../spark/TestPrestoSparkQueryRunner.java | 9 ++ 7 files changed, 135 insertions(+), 49 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java index f179b37a53474..841c8ead47751 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PageSinkCommitStrategy.java @@ -17,6 +17,7 @@ public enum PageSinkCommitStrategy { NO_COMMIT(false), LIFESPAN_COMMIT(true), + TASK_COMMIT(true), /**/; private final boolean commitRequired; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java index 4ea447970a2f7..dffe368d25321 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java @@ -29,6 +29,7 @@ import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Streams; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.slice.Slice; @@ -40,10 +41,9 @@ import java.util.Objects; import java.util.Optional; import java.util.concurrent.ExecutionException; -import java.util.stream.Stream; import static com.facebook.presto.SystemSessionProperties.isStatisticsCpuTimerEnabled; -import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; +import static com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT; import static com.facebook.presto.operator.TableWriterUtils.FRAGMENT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.ROW_COUNT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.extractStatisticsRows; @@ -249,7 +249,7 @@ public Page getOutput() } state = State.FINISHED; - lifespanAndStageStateTracker.waitForAllLifespanCommitted(); + lifespanAndStageStateTracker.commit(); outputMetadata = tableFinisher.finishTable(lifespanAndStageStateTracker.getFinalFragments(), computedStatisticsBuilder.build()); // output page will only be constructed once, @@ -308,7 +308,8 @@ public interface PageSinkCommitter // A lifespan in a stage defines the unit for commit and recovery in recoverable grouped execution private static class LifespanAndStageStateTracker { - private final Map unrecoverableLifespanAndStageStates = new HashMap<>(); + private final Map noCommitUnrecoverableLifespanAndStageStates = new HashMap<>(); + private final Map taskCommitUnrecoverableLifespanAndStageStates = new HashMap<>(); // For recoverable execution, it is possible to receive pages of the same lifespan-stage from different tasks. We track all of them and commit the one // which finishes sending pages first. @@ -323,8 +324,12 @@ private static class LifespanAndStageStateTracker this.pageSinkCommitter = requireNonNull(pageSinkCommitter, "pageSinkCommitter is null"); } - public void waitForAllLifespanCommitted() + public void commit() { + for (LifespanAndStageState lifespanAndStageState : taskCommitUnrecoverableLifespanAndStageStates.values()) { + commitFutures.add(pageSinkCommitter.commitAsync(lifespanAndStageState.getFragments())); + } + ListenableFuture future = whenAllSucceed(commitFutures).call(() -> null, directExecutor()); try { future.get(); @@ -344,44 +349,54 @@ public void waitForAllLifespanCommitted() public void update(Page page, TableCommitContext tableCommitContext) { LifespanAndStage lifespanAndStage = LifespanAndStage.fromTableCommitContext(tableCommitContext); + PageSinkCommitStrategy commitStrategy = tableCommitContext.getPageSinkCommitStrategy(); + switch (commitStrategy) { + case NO_COMMIT: { + // Case 1: lifespan commit is not required, this can be one of the following cases: + // - The source fragment is ungrouped execution (lifespan is TASK_WIDE). + // - The source fragment is grouped execution but not recoverable. + noCommitUnrecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); + return; + } + case TASK_COMMIT: { + // Case 2: Commit is required, but partial recovery is not supported + taskCommitUnrecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); + return; + } + case LIFESPAN_COMMIT: { + // Case 2: Lifespan commit is required + checkState(lifespanAndStage.lifespan != Lifespan.taskWide(), "Recoverable lifespan cannot be TASK_WIDE"); + + // Case 2a: Current (stage, lifespan) combination is already committed + if (committedRecoverableLifespanAndStages.containsKey(lifespanAndStage)) { + checkState( + !committedRecoverableLifespanAndStages.get(lifespanAndStage).getTaskId().equals(tableCommitContext.getTaskId()), + "Received page from same task of committed lifespan and stage combination"); + return; + } - // Case 1: lifespan commit is not required, this can be one of the following cases: - // - The source fragment is ungrouped execution (lifespan is TASK_WIDE). - // - The source fragment is grouped execution but not recoverable. - if (tableCommitContext.getPageSinkCommitStrategy() == NO_COMMIT) { - unrecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); - return; - } - - // Case 2: lifespan commit is required - checkState(lifespanAndStage.lifespan != Lifespan.taskWide(), "Recoverable lifespan cannot be TASK_WIDE"); - - // Case 2a: current (stage, lifespan) combination is already committed - if (committedRecoverableLifespanAndStages.containsKey(lifespanAndStage)) { - checkState( - !committedRecoverableLifespanAndStages.get(lifespanAndStage).getTaskId().equals(tableCommitContext.getTaskId()), - "Received page from same task of committed lifespan and stage combination"); - - return; - } - - // Case 2b: current (stage, lifespan) combination is not yet committed - Map lifespanStageStatesPerTask = uncommittedRecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new HashMap<>()); - lifespanStageStatesPerTask.computeIfAbsent(tableCommitContext.getTaskId(), ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); + // Case 2b: Current (stage, lifespan) combination is not yet committed + Map lifespanStageStatesPerTask = uncommittedRecoverableLifespanAndStageStates.computeIfAbsent(lifespanAndStage, ignored -> new HashMap<>()); + lifespanStageStatesPerTask.computeIfAbsent(tableCommitContext.getTaskId(), ignored -> new LifespanAndStageState(tableCommitContext.getTaskId())).update(page); - if (tableCommitContext.isLastPage()) { - checkState(!committedRecoverableLifespanAndStages.containsKey(lifespanAndStage), "LifespanAndStage already finished"); - LifespanAndStageState lifespanAndStageState = lifespanStageStatesPerTask.get(tableCommitContext.getTaskId()); - committedRecoverableLifespanAndStages.put(lifespanAndStage, lifespanAndStageState); - uncommittedRecoverableLifespanAndStageStates.remove(lifespanAndStage); - commitFutures.add(pageSinkCommitter.commitAsync(lifespanAndStageState.getFragments())); + if (tableCommitContext.isLastPage()) { + checkState(!committedRecoverableLifespanAndStages.containsKey(lifespanAndStage), "LifespanAndStage already finished"); + LifespanAndStageState lifespanAndStageState = lifespanStageStatesPerTask.get(tableCommitContext.getTaskId()); + committedRecoverableLifespanAndStages.put(lifespanAndStage, lifespanAndStageState); + uncommittedRecoverableLifespanAndStageStates.remove(lifespanAndStage); + commitFutures.add(pageSinkCommitter.commitAsync(lifespanAndStageState.getFragments())); + } + return; + } + default: + throw new IllegalArgumentException("unexpected commit strategy: " + commitStrategy); } } List getStatisticsPagesToProcess(Page page, TableCommitContext tableCommitContext) { LifespanAndStage lifespanAndStage = LifespanAndStage.fromTableCommitContext(tableCommitContext); - if (tableCommitContext.getPageSinkCommitStrategy() == NO_COMMIT) { + if (tableCommitContext.getPageSinkCommitStrategy() != LIFESPAN_COMMIT) { return extractStatisticsRows(page).map(ImmutableList::of).orElse(ImmutableList.of()); } if (!committedRecoverableLifespanAndStages.containsKey(lifespanAndStage)) { @@ -394,7 +409,10 @@ List getStatisticsPagesToProcess(Page page, TableCommitContext tableCommit public long getFinalRowCount() { checkState(uncommittedRecoverableLifespanAndStageStates.isEmpty(), "All recoverable LifespanAndStage should be committed when fetching final row count"); - return Stream.concat(unrecoverableLifespanAndStageStates.values().stream(), committedRecoverableLifespanAndStages.values().stream()) + return Streams.concat( + noCommitUnrecoverableLifespanAndStageStates.values().stream(), + taskCommitUnrecoverableLifespanAndStageStates.values().stream(), + committedRecoverableLifespanAndStages.values().stream()) .mapToLong(LifespanAndStageState::getRowCount) .sum(); } @@ -402,7 +420,10 @@ public long getFinalRowCount() public List getFinalFragments() { checkState(uncommittedRecoverableLifespanAndStageStates.isEmpty(), "All recoverable LifespanAndStage should be committed when fetching final fragments"); - return Stream.concat(unrecoverableLifespanAndStageStates.values().stream(), committedRecoverableLifespanAndStages.values().stream()) + return Streams.concat( + noCommitUnrecoverableLifespanAndStageStates.values().stream(), + taskCommitUnrecoverableLifespanAndStageStates.values().stream(), + committedRecoverableLifespanAndStages.values().stream()) .map(LifespanAndStageState::getFragments) .flatMap(List::stream) .collect(toImmutableList()); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index df3633e33e607..2834b247392db 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -238,6 +238,9 @@ import static com.facebook.presto.operator.DistinctLimitOperator.DistinctLimitOperatorFactory; import static com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory; import static com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopJoinOperatorFactory; +import static com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT; +import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; +import static com.facebook.presto.operator.PageSinkCommitStrategy.TASK_COMMIT; import static com.facebook.presto.operator.PipelineExecutionStrategy.GROUPED_EXECUTION; import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; import static com.facebook.presto.operator.TableFinishOperator.TableFinishOperatorFactory; @@ -393,7 +396,8 @@ public LocalExecutionPlan plan( partitionedSourceOrder, createOutputFactory(taskContext, partitioningScheme, outputBuffer), remoteSourceFactory, - tableWriteInfo); + tableWriteInfo, + false); } public LocalExecutionPlan plan( @@ -404,7 +408,8 @@ public LocalExecutionPlan plan( List partitionedSourceOrder, OutputFactory outputFactory, RemoteSourceFactory remoteSourceFactory, - TableWriteInfo tableWriteInfo) + TableWriteInfo tableWriteInfo, + boolean pageSinkCommitRequired) { return plan( taskContext, @@ -415,7 +420,8 @@ public LocalExecutionPlan plan( outputFactory, createOutputPartitioning(taskContext, partitioningScheme), remoteSourceFactory, - tableWriteInfo); + tableWriteInfo, + pageSinkCommitRequired); } private OutputFactory createOutputFactory(TaskContext taskContext, PartitioningScheme partitioningScheme, OutputBuffer outputBuffer) @@ -505,11 +511,12 @@ public LocalExecutionPlan plan( OutputFactory outputOperatorFactory, Optional outputPartitioning, RemoteSourceFactory remoteSourceFactory, - TableWriteInfo tableWriteInfo) + TableWriteInfo tableWriteInfo, + boolean pageSinkCommitRequired) { Session session = taskContext.getSession(); LocalExecutionPlanContext context = new LocalExecutionPlanContext(taskContext, tableWriteInfo); - PhysicalOperation physicalOperation = plan.accept(new Visitor(session, stageExecutionDescriptor, remoteSourceFactory), context); + PhysicalOperation physicalOperation = plan.accept(new Visitor(session, stageExecutionDescriptor, remoteSourceFactory, pageSinkCommitRequired), context); Function pagePreprocessor = enforceLayoutProcessor(outputLayout, physicalOperation.getLayout()); @@ -744,12 +751,14 @@ private class Visitor private final Session session; private final StageExecutionDescriptor stageExecutionDescriptor; private final RemoteSourceFactory remoteSourceFactory; + private final boolean pageSinkCommitRequired; - private Visitor(Session session, StageExecutionDescriptor stageExecutionDescriptor, RemoteSourceFactory remoteSourceFactory) + private Visitor(Session session, StageExecutionDescriptor stageExecutionDescriptor, RemoteSourceFactory remoteSourceFactory, boolean pageSinkCommitRequired) { this.session = requireNonNull(session, "session is null"); this.stageExecutionDescriptor = requireNonNull(stageExecutionDescriptor, "stageExecutionDescriptor is null"); this.remoteSourceFactory = requireNonNull(remoteSourceFactory, "remoteSourceFactory is null"); + this.pageSinkCommitRequired = pageSinkCommitRequired; } @Override @@ -2323,13 +2332,22 @@ public PhysicalOperation visitTableWriter(TableWriterNode node, LocalExecutionPl statisticsAggregation, getVariableTypes(node.getOutputVariables()), tableCommitContextCodec, - stageExecutionDescriptor.isRecoverableGroupedExecution() - ? PageSinkCommitStrategy.LIFESPAN_COMMIT - : PageSinkCommitStrategy.NO_COMMIT); + getPageSinkCommitStrategy()); return new PhysicalOperation(operatorFactory, outputMapping.build(), context, source); } + private PageSinkCommitStrategy getPageSinkCommitStrategy() + { + if (stageExecutionDescriptor.isRecoverableGroupedExecution()) { + return LIFESPAN_COMMIT; + } + if (pageSinkCommitRequired) { + return TASK_COMMIT; + } + return NO_COMMIT; + } + @Override public PhysicalOperation visitStatisticsWriterNode(StatisticsWriterNode node, LocalExecutionPlanContext context) { diff --git a/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java b/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java index 1c5e7546c13dd..015cc8d9423c4 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java @@ -814,7 +814,8 @@ public OperatorFactory createMergeRemoteSource(Session session, int operatorId, throw new UnsupportedOperationException(); } }, - createTableWriteInfo(streamingSubPlan, metadata, session)); + createTableWriteInfo(streamingSubPlan, metadata, session), + false); // generate sources List sources = new ArrayList<>(); diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkTaskExecutorFactory.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkTaskExecutorFactory.java index 081d72a9a2c25..14fa20f81182c 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkTaskExecutorFactory.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkTaskExecutorFactory.java @@ -238,7 +238,8 @@ public IPrestoSparkTaskExecutor create( fragment.getTableScanSchedulingOrder(), new PrestoSparkOutputFactory(rowBuffer), new PrestoSparkRemoteSourceFactory(sparkInputs), - taskDescriptor.getTableWriteInfo()); + taskDescriptor.getTableWriteInfo(), + true); List drivers = createDrivers( localExecutionPlan, diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkSplitEnumerator.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkSplitEnumerator.java index 4b77ebeec8311..50ba3bd6049bc 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkSplitEnumerator.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/planner/PrestoSparkSplitEnumerator.java @@ -17,12 +17,17 @@ import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; +import com.facebook.presto.execution.scheduler.ExecutionWriterTarget; import com.facebook.presto.execution.scheduler.StreamingPlanSection; import com.facebook.presto.execution.scheduler.StreamingSubPlan; +import com.facebook.presto.execution.scheduler.TableWriteInfo; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.Split; import com.facebook.presto.operator.StageExecutionDescriptor; import com.facebook.presto.operator.StageExecutionDescriptor.StageExecutionStrategy; +import com.facebook.presto.spi.ConnectorId; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.connector.ConnectorCapabilities; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.split.SplitManager; @@ -35,16 +40,20 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.execution.scheduler.StreamingPlanSection.extractStreamingSections; import static com.facebook.presto.execution.scheduler.TableWriteInfo.createTableWriteInfo; import static com.facebook.presto.operator.StageExecutionDescriptor.StageExecutionStrategy.UNGROUPED_EXECUTION; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; +import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PAGE_SINK_COMMIT; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; import static com.facebook.presto.sql.planner.optimizations.PlanNodeSearcher.searchFrom; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; @@ -67,7 +76,33 @@ public PrestoSparkPlan preparePlan(Session session, SubPlan plan) StreamingPlanSection streamingPlanSection = extractStreamingSections(plan); checkState(streamingPlanSection.getChildren().isEmpty(), "expected no materialized exchanges"); StreamingSubPlan streamingSubPlan = streamingPlanSection.getPlan(); - return new PrestoSparkPlan(resolveTaskSources(session, plan), createTableWriteInfo(streamingSubPlan, metadata, session)); + TableWriteInfo writeInfo = createTableWriteInfo(streamingSubPlan, metadata, session); + if (writeInfo.getWriterTarget().isPresent()) { + checkPageSinkCommitIsSupported(session, writeInfo.getWriterTarget().get()); + } + return new PrestoSparkPlan(resolveTaskSources(session, plan), writeInfo); + } + + private void checkPageSinkCommitIsSupported(Session session, ExecutionWriterTarget writerTarget) + { + ConnectorId connectorId; + if (writerTarget instanceof ExecutionWriterTarget.DeleteHandle) { + throw new PrestoException(NOT_SUPPORTED, "delete queries are not supported by presto on spark"); + } + else if (writerTarget instanceof ExecutionWriterTarget.CreateHandle) { + connectorId = ((ExecutionWriterTarget.CreateHandle) writerTarget).getHandle().getConnectorId(); + } + else if (writerTarget instanceof ExecutionWriterTarget.InsertHandle) { + connectorId = ((ExecutionWriterTarget.InsertHandle) writerTarget).getHandle().getConnectorId(); + } + else { + throw new IllegalArgumentException("unexpected writer target type: " + writerTarget.getClass()); + } + verify(connectorId != null, "connectorId is null"); + Set connectorCapabilities = metadata.getConnectorCapabilities(session, connectorId); + if (!connectorCapabilities.contains(SUPPORTS_PAGE_SINK_COMMIT)) { + throw new PrestoException(NOT_SUPPORTED, "catalog does not support page sink commit: " + connectorId); + } } private PrestoSparkSubPlan resolveTaskSources(Session session, SubPlan plan) diff --git a/presto-spark-base/src/test/java/com/facebook/presto/spark/TestPrestoSparkQueryRunner.java b/presto-spark-base/src/test/java/com/facebook/presto/spark/TestPrestoSparkQueryRunner.java index fdd4068088896..e3341448bab93 100644 --- a/presto-spark-base/src/test/java/com/facebook/presto/spark/TestPrestoSparkQueryRunner.java +++ b/presto-spark-base/src/test/java/com/facebook/presto/spark/TestPrestoSparkQueryRunner.java @@ -33,10 +33,19 @@ public void testTableWrite() "FROM orders", 15000); + assertUpdate( + "INSERT INTO hive.hive_test.hive_orders " + + "SELECT orderkey, custkey, orderstatus, totalprice, orderdate, orderpriority, clerk, shippriority, comment " + + "FROM orders", + 15000); + assertQuery( "SELECT orderkey, custkey, orderstatus, totalprice, orderdate, orderpriority, clerk, shippriority, comment " + "FROM hive.hive_test.hive_orders", "SELECT orderkey, custkey, orderstatus, totalprice, orderdate, orderpriority, clerk, shippriority, comment " + + "FROM orders " + + "UNION ALL " + + "SELECT orderkey, custkey, orderstatus, totalprice, orderdate, orderpriority, clerk, shippriority, comment " + "FROM orders"); } From 1cc59eb4d01692f8ec43810c46b59a58820b29d8 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Thu, 16 Apr 2020 01:04:24 -0400 Subject: [PATCH 026/129] Add footer to PageFile format A footer consists of two parts. - offset of each stripe's start location. - footer's total size in bytes. --- .../hive/pagefile/PageFileFooterOutput.java | 52 +++++++++++++++++++ .../presto/hive/pagefile/PageWriter.java | 23 ++++++-- 2 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java new file mode 100644 index 0000000000000..7d62f74f7153b --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java @@ -0,0 +1,52 @@ +/* + * 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 com.facebook.presto.hive.pagefile; + +import com.facebook.presto.orc.stream.DataOutput; +import com.google.common.collect.ImmutableList; +import io.airlift.slice.SliceOutput; + +import java.util.List; + +import static io.airlift.slice.SizeOf.SIZE_OF_INT; +import static io.airlift.slice.SizeOf.SIZE_OF_LONG; +import static java.lang.Math.toIntExact; +import static java.util.Objects.requireNonNull; + +public class PageFileFooterOutput + implements DataOutput +{ + public static final int FOOTER_LENGTH_IN_BYTES = SIZE_OF_INT; + private final List stripeOffsets; + + public PageFileFooterOutput(List stripeOffsets) + { + this.stripeOffsets = ImmutableList.copyOf(requireNonNull(stripeOffsets, "stripeOffsets is null")); + } + + @Override + public long size() + { + return SIZE_OF_LONG * stripeOffsets.size() + FOOTER_LENGTH_IN_BYTES; + } + + @Override + public void writeData(SliceOutput sliceOutput) + { + for (long offset : stripeOffsets) { + sliceOutput.writeLong(offset); + } + sliceOutput.writeInt(toIntExact(size())); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java index 32dc0a43550d0..5e7723966ab0e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java @@ -16,6 +16,7 @@ import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.stream.DataOutput; import com.facebook.presto.spi.page.SerializedPage; +import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; import org.openjdk.jol.info.ClassLayout; @@ -37,12 +38,15 @@ public class PageWriter private long maxBufferedBytes; private boolean closed; private List bufferedPages; + private List stripeOffsets; + private long stripeOffset; public PageWriter(DataSink dataSink, DataSize pageFileStripeMaxSize) { this.dataSink = requireNonNull(dataSink, "pageDataSink is null"); this.maxBufferedBytes = requireNonNull(pageFileStripeMaxSize, "pageFileStripeMaxSize is null").toBytes(); bufferedPages = new ArrayList<>(); + stripeOffsets = new ArrayList<>(); } /** @@ -59,10 +63,7 @@ public void write(SerializedPage page) PageDataOutput pageDataOutput = new PageDataOutput(page); long writtenSize = pageDataOutput.size(); if (maxBufferedBytes - bufferedBytes < writtenSize) { - dataSink.write(bufferedPages); - bufferedPages.clear(); - bufferedBytes = 0; - retainedBytes = 0; + flushStripe(); } bufferedPages.add(pageDataOutput); bufferedBytes += writtenSize; @@ -78,8 +79,9 @@ public void close() } closed = true; if (!bufferedPages.isEmpty()) { - dataSink.write(bufferedPages); + flushStripe(); } + dataSink.write(ImmutableList.of(new PageFileFooterOutput(stripeOffsets))); dataSink.close(); } @@ -87,4 +89,15 @@ public long getRetainedBytes() { return INSTANCE_SIZE + retainedBytes + dataSink.getRetainedSizeInBytes(); } + + private void flushStripe() + throws IOException + { + dataSink.write(bufferedPages); + stripeOffsets.add(stripeOffset); + stripeOffset += bufferedBytes; + bufferedPages.clear(); + bufferedBytes = 0; + retainedBytes = 0; + } } From f8fac992cdcb0c1a74f660e30f7c422a1f00491a Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Fri, 24 Apr 2020 20:01:59 -0400 Subject: [PATCH 027/129] Create zero row file for PageFile format --- .../presto/hive/HiveZeroRowFileCreator.java | 5 ++--- .../hive/pagefile/PageFileFooterOutput.java | 5 +++++ .../hive/pagefile/PageFileWriterFactory.java | 18 +++++++++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveZeroRowFileCreator.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveZeroRowFileCreator.java index b48f435d30d37..a016f5a50949b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveZeroRowFileCreator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveZeroRowFileCreator.java @@ -20,7 +20,6 @@ import com.facebook.presto.spi.PrestoException; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; -import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.ql.exec.FileSinkOperator.RecordWriter; import org.apache.hadoop.mapred.JobConf; @@ -39,6 +38,7 @@ import static com.facebook.presto.hive.HiveCompressionCodec.NONE; import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITER_CLOSE_ERROR; import static com.facebook.presto.hive.HiveWriteUtils.initializeSerializer; +import static com.facebook.presto.hive.pagefile.PageFileWriterFactory.createEmptyPageFile; import static com.facebook.presto.hive.util.ConfigurationUtils.configureCompression; import static com.google.common.util.concurrent.Futures.whenAllSucceed; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; @@ -107,8 +107,7 @@ private byte[] generateZeroRowFile( outputFormatName.equals(HiveStorageFormat.JSON.getOutputFormat()) ? compressionCodec : NONE); if (outputFormatName.equals(HiveStorageFormat.PAGEFILE.getOutputFormat())) { - FSDataOutputStream outputStream = target.getFileSystem(conf).create(target); - outputStream.close(); + createEmptyPageFile(target.getFileSystem(conf), target); return readAllBytes(tmpFilePath); } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java index 7d62f74f7153b..568cb9735cdb2 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java @@ -49,4 +49,9 @@ public void writeData(SliceOutput sliceOutput) } sliceOutput.writeInt(toIntExact(size())); } + + public static PageFileFooterOutput createEmptyPageFileFooterOutput() + { + return new PageFileFooterOutput(ImmutableList.of()); + } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java index fa26809e63063..55509a8b46f66 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java @@ -23,6 +23,7 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PagesSerde; +import com.google.common.collect.ImmutableList; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapred.JobConf; @@ -38,6 +39,7 @@ import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITER_OPEN_ERROR; import static com.facebook.presto.hive.HiveSessionProperties.getPageFileStripeMaxSize; import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; +import static com.facebook.presto.hive.pagefile.PageFileFooterOutput.createEmptyPageFileFooterOutput; import static java.util.Objects.requireNonNull; public class PageFileWriterFactory @@ -88,7 +90,21 @@ public Optional createFileWriter( } } - protected DataSink createPageDataSink(FileSystem fileSystem, Path path) + public static void createEmptyPageFile( + FileSystem fileSystem, + Path path) + { + try { + DataSink dataSink = createPageDataSink(fileSystem, path); + dataSink.write(ImmutableList.of(createEmptyPageFileFooterOutput())); + dataSink.close(); + } + catch (IOException e) { + throw new PrestoException(HIVE_WRITER_OPEN_ERROR, "Error creating empty pagefile", e); + } + } + + private static DataSink createPageDataSink(FileSystem fileSystem, Path path) throws IOException { return new OutputStreamDataSink(fileSystem.create(path)); From 0a0c6ff04654b61140ae9a0aef2a04ac735c6a2a Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Thu, 16 Apr 2020 01:17:33 -0400 Subject: [PATCH 028/129] Support splittable read of PageFile --- .../hive/pagefile/PageFileFooterReader.java | 81 +++++++++++++++++++ .../hive/pagefile/PageFilePageReader.java | 66 +++++++++++++++ .../hive/pagefile/PageFilePageSource.java | 80 ++++++++++++++++-- .../pagefile/PageFilePageSourceFactory.java | 4 +- .../presto/hive/pagefile/PageInputFormat.java | 2 +- .../hive/TestHiveIntegrationSmokeTest.java | 27 +++++++ .../presto/spi/page/PagesSerdeUtil.java | 2 +- 7 files changed, 254 insertions(+), 8 deletions(-) create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java new file mode 100644 index 0000000000000..bee6db3cf29b7 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java @@ -0,0 +1,81 @@ +/* + * 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 com.facebook.presto.hive.pagefile; + +import com.google.common.collect.ImmutableList; +import io.airlift.slice.SliceInput; +import io.airlift.slice.Slices; +import org.apache.hadoop.fs.FSDataInputStream; + +import java.io.IOException; +import java.util.List; + +import static com.facebook.presto.hive.pagefile.PageFileFooterOutput.FOOTER_LENGTH_IN_BYTES; +import static com.google.common.base.Preconditions.checkArgument; +import static java.lang.Math.min; +import static java.lang.Math.toIntExact; +import static java.util.Objects.requireNonNull; + +public class PageFileFooterReader +{ + private static final int ESTIMATED_FOOTER_SIZE = 1024; + + private List stripeOffsets; + private long footerOffset; + + public PageFileFooterReader( + FSDataInputStream inputStream, + long fileSize) + throws IOException + { + checkArgument(fileSize >= FOOTER_LENGTH_IN_BYTES, "Malformed PageFile format, footer length is missing."); + requireNonNull(inputStream, "inputStream is null"); + ImmutableList.Builder stripeOffsetsBuilder = ImmutableList.builder(); + + byte[] buffer = new byte[toIntExact(min(fileSize, ESTIMATED_FOOTER_SIZE))]; + inputStream.readFully(fileSize - buffer.length, buffer); + int footerSize = Slices.wrappedBuffer(buffer, buffer.length - FOOTER_LENGTH_IN_BYTES, FOOTER_LENGTH_IN_BYTES).getInt(0); + + footerOffset = fileSize - footerSize; + if (footerOffset < 0) { + throw new IOException("Malformed PageFile format, incorrect footer length."); + } + else if (footerOffset > 0) { + if (footerSize > buffer.length) { + buffer = new byte[footerSize]; + inputStream.readFully(footerOffset, buffer); + } + + SliceInput sliceInput = Slices.wrappedBuffer(buffer, buffer.length - footerSize, footerSize - FOOTER_LENGTH_IN_BYTES).getInput(); + + while (sliceInput.isReadable()) { + stripeOffsetsBuilder.add(sliceInput.readLong()); + } + } + else { + // empty page file without stripe + } + stripeOffsets = stripeOffsetsBuilder.build(); + } + + public List getStripeOffsets() + { + return stripeOffsets; + } + + public long getFooterOffset() + { + return footerOffset; + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java new file mode 100644 index 0000000000000..f6aa0da274def --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java @@ -0,0 +1,66 @@ +/* + * 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 com.facebook.presto.hive.pagefile; + +import com.facebook.presto.spi.Page; +import com.facebook.presto.spi.page.PagesSerde; +import com.facebook.presto.spi.page.SerializedPage; +import io.airlift.slice.InputStreamSliceInput; +import io.airlift.slice.SliceInput; +import org.apache.hadoop.fs.FSDataInputStream; + +import java.io.IOException; +import java.util.Iterator; +import java.util.NoSuchElementException; + +import static com.facebook.presto.spi.page.PagesSerdeUtil.readSerializedPage; +import static java.util.Objects.requireNonNull; + +public class PageFilePageReader + implements Iterator +{ + private final PagesSerde pagesSerde; + private final SliceInput input; + private final long readLength; + + public PageFilePageReader( + long readStart, + long readLength, + FSDataInputStream inputStream, + PagesSerde pagesSerde) + throws IOException + { + this.pagesSerde = requireNonNull(pagesSerde, "pagesSerde is null"); + this.readLength = readLength; + requireNonNull(inputStream, "inputStream is null"); + inputStream.seek(readStart); + this.input = new InputStreamSliceInput(inputStream); + } + + @Override + public boolean hasNext() + { + return input.position() < readLength && input.isReadable(); + } + + @Override + public Page next() + { + if (!hasNext()) { + throw new NoSuchElementException(); + } + SerializedPage serializedPage = readSerializedPage(input); + return pagesSerde.deserialize(serializedPage); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java index 7caf3faa812d0..66ea4a376e452 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java @@ -19,7 +19,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.page.PagesSerde; -import io.airlift.slice.InputStreamSliceInput; import org.apache.hadoop.fs.FSDataInputStream; import java.io.IOException; @@ -27,7 +26,7 @@ import java.util.List; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.page.PagesSerdeUtil.readPages; +import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; public class PageFilePageSource @@ -45,13 +44,27 @@ public class PageFilePageSource public PageFilePageSource( FSDataInputStream inputStream, + long start, + long splitLength, + long fileSize, PagesSerde pagesSerde, List columns) + throws IOException { this.inputStream = requireNonNull(inputStream, "inputStream is null"); - pageReader = readPages( - requireNonNull(pagesSerde, "pagesSerde is null"), - new InputStreamSliceInput(inputStream)); + PageFileFooterReader pageFileFooterReader = new PageFileFooterReader(inputStream, fileSize); + + OffsetAndLength readStartAndLength = getReadStartAndLength( + start, + splitLength, + pageFileFooterReader.getFooterOffset(), + pageFileFooterReader.getStripeOffsets()); + + pageReader = new PageFilePageReader( + readStartAndLength.getOffset(), + readStartAndLength.getLength(), + inputStream, + pagesSerde); int size = requireNonNull(columns, "columns is null").size(); this.hiveColumnIndexes = new int[size]; @@ -127,4 +140,61 @@ public void close() inputStream.close(); closed = true; } + + private static OffsetAndLength getReadStartAndLength( + long splitStart, + long splitLength, + long lastStripeEnd, + List stripeOffsets) + { + checkArgument(stripeOffsets != null, "stripeOffsets is null, failed to read page file footer."); + if (stripeOffsets.isEmpty()) { + return new OffsetAndLength(0, 0); + } + + long readStart = 0; + long readEnd = 0; + boolean stripeFound = false; + for (int i = 0; i < stripeOffsets.size(); ++i) { + if (splitContainsStripe(splitStart, splitLength, stripeOffsets.get(i))) { + if (!stripeFound) { + readStart = stripeOffsets.get(i); + stripeFound = true; + } + readEnd = i == stripeOffsets.size() - 1 ? lastStripeEnd : stripeOffsets.get(i + 1); + } + else if (stripeFound) { + break; + } + } + + return new OffsetAndLength(readStart, readEnd - readStart); + } + + private static boolean splitContainsStripe(long splitStart, long splitLength, long stripeOffset) + { + return splitStart <= stripeOffset && stripeOffset < splitStart + splitLength; + } + + private static class OffsetAndLength + { + private final long offset; + private final long length; + + OffsetAndLength(long offset, long length) + { + this.offset = offset; + this.length = length; + } + + private long getOffset() + { + return offset; + } + + private long getLength() + { + return length; + } + } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java index a0c93d1a8ed83..89fbb828add21 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java @@ -80,8 +80,10 @@ public Optional createPageSource( } FSDataInputStream inputStream; + PageFilePageSource pageFilePageSource; try { inputStream = hdfsEnvironment.getFileSystem(session.getUser(), path, configuration).openFile(path, hiveFileContext); + pageFilePageSource = new PageFilePageSource(inputStream, start, length, fileSize, pagesSerde, columns); } catch (Exception e) { if (nullToEmpty(e.getMessage()).trim().equals("Filesystem closed") || @@ -91,7 +93,7 @@ public Optional createPageSource( throw new PrestoException(HIVE_CANNOT_OPEN_SPLIT, splitError(e, path, start, length), e); } - return Optional.of(new PageFilePageSource(inputStream, pagesSerde, columns)); + return Optional.of(pageFilePageSource); } private static String splitError(Throwable t, Path path, long start, long length) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageInputFormat.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageInputFormat.java index b9ddb08d58057..d38aeccae6013 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageInputFormat.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageInputFormat.java @@ -33,6 +33,6 @@ public RecordReader getRecordReader(InputSplit input protected boolean isSplitable(FileSystem fs, Path file) { - return false; + return true; } } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index c0a93311d5674..89397aa9b7e80 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -4753,6 +4753,33 @@ public void testPageFileFormatSmallStripe() assertUpdate("DROP TABLE test_pagefile_orders"); } + @Test + public void testPageFileFormatSmallSplitSize() + { + Session testSession = Session.builder(getQueryRunner().getDefaultSession()) + .setCatalogSessionProperty(catalog, "pagefile_writer_max_stripe_size", "100B") + .setCatalogSessionProperty(catalog, "max_split_size", "1kB") + .setCatalogSessionProperty(catalog, "max_initial_split_size", "1kB") + .build(); + + assertUpdate( + testSession, + "CREATE TABLE test_pagefile_orders\n" + + "WITH (\n" + + "format = 'PAGEFILE'\n" + + ") AS\n" + + "SELECT\n" + + "*\n" + + "FROM tpch.orders", + "SELECT count(*) FROM orders"); + + assertQuery(testSession, "SELECT count(*) FROM test_pagefile_orders", "SELECT count(*) FROM orders"); + + assertQuery(testSession, "SELECT sum(custkey) FROM test_pagefile_orders", "SELECT sum(custkey) FROM orders"); + + assertUpdate("DROP TABLE test_pagefile_orders"); + } + private static Consumer assertTableWriterMergeNodeIsPresent() { return plan -> assertTrue(searchFrom(plan.getRoot()) diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java index 33c39f5ebd6dd..90d1bf1fb1457 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java @@ -63,7 +63,7 @@ public static void writeSerializedPage(SliceOutput output, SerializedPage page) output.writeBytes(page.getSlice()); } - private static SerializedPage readSerializedPage(SliceInput sliceInput) + public static SerializedPage readSerializedPage(SliceInput sliceInput) { int positionCount = sliceInput.readInt(); byte codecMarker = sliceInput.readByte(); From ca3f93f2597303657dd9a07a5affd6547d6a171c Mon Sep 17 00:00:00 2001 From: Ying Su Date: Thu, 23 Apr 2020 00:37:42 -0700 Subject: [PATCH 029/129] Fix "bound must be positive" exception when creating DictionaryBlock --- .../test/java/com/facebook/presto/block/BlockAssertions.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java index b7fda4fabbe60..5a3a877f17fc6 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java @@ -67,6 +67,7 @@ import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; import static java.lang.Float.floatToRawIntBits; +import static java.lang.Math.max; import static java.lang.Math.min; import static java.lang.String.format; import static java.nio.charset.StandardCharsets.UTF_8; @@ -708,12 +709,14 @@ public static DictionaryBlock createRandomDictionaryBlock(Block dictionary, int public static DictionaryBlock createRandomDictionaryBlock(Block dictionary, int positionCount, boolean isView) { + checkArgument(dictionary.getPositionCount() > 0, format("dictionary's positionCount %d is less than or equal to 0", dictionary.getPositionCount())); + int idsOffset = 0; if (isView) { idsOffset = min(ThreadLocalRandom.current().nextInt(dictionary.getPositionCount()), 1); } - int[] ids = IntStream.range(0, positionCount + idsOffset).map(i -> ThreadLocalRandom.current().nextInt(dictionary.getPositionCount() / 10)).toArray(); + int[] ids = IntStream.range(0, positionCount + idsOffset).map(i -> ThreadLocalRandom.current().nextInt(max(dictionary.getPositionCount() / 10, 1))).toArray(); return new DictionaryBlock(idsOffset, positionCount, dictionary, ids, false, randomDictionaryId()); } From aaeaa5ba217dc5af865e624b388823be86d8f03b Mon Sep 17 00:00:00 2001 From: Ying Su Date: Thu, 23 Apr 2020 00:57:34 -0700 Subject: [PATCH 030/129] Remove positionCount check in createRandomLongDecimalsBlock TestRowBasedSerialization sometimes fails calling createRandomLongDecimalsBlock with less than 10 positions. We should allow blocks with less than 10 positions to be created if there are such needs. This commit removes the check to enforce the positionCount check, and comments were added to suggest the user use a larger positinCount when desired nullRate > 0. --- .../java/com/facebook/presto/block/BlockAssertions.java | 9 +++++++-- .../facebook/presto/block/TestRowBasedSerialization.java | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java index 5a3a877f17fc6..d809419b2dc85 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java @@ -265,6 +265,7 @@ public static Block createBooleansBlock(Iterable values) return builder.build(); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomBooleansBlock(int positionCount, float nullRate) { ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> ThreadLocalRandom.current().nextBoolean()); @@ -299,6 +300,7 @@ public static Block createShortDecimalsBlock(Iterable values) return builder.build(); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomShortDecimalsBlock(int positionCount, float nullRate) { ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> Double.toString(ThreadLocalRandom.current().nextDouble() * ThreadLocalRandom.current().nextInt())); @@ -333,10 +335,9 @@ public static Block createLongDecimalsBlock(Iterable values) return builder.build(); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomLongDecimalsBlock(int positionCount, float nullRate) { - checkArgument(positionCount >= 10, "positionCount is less than 10"); - ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> Double.toString(ThreadLocalRandom.current().nextDouble() * ThreadLocalRandom.current().nextInt())); return createLongDecimalsBlock( @@ -414,6 +415,7 @@ else if (fieldValue instanceof Integer) { return rowBlockBuilder.build(); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomIntsBlock(int positionCount, float nullRate) { ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> ThreadLocalRandom.current().nextInt()); @@ -453,6 +455,7 @@ public static Block createLongsBlock(Iterable values) return createTypedLongsBlock(BIGINT, values); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomLongsBlock(int positionCount, float nullRate) { ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> ThreadLocalRandom.current().nextLong()); @@ -479,6 +482,7 @@ public static Block createTypedLongsBlock(Type type, Iterable values) return builder.build(); } + // Note: Make sure positionCount is sufficiently large if nullRate is greater than 0 public static Block createRandomSmallintsBlock(int positionCount, float nullRate) { ValuesWithNullsGenerator generator = new ValuesWithNullsGenerator(nullRate, () -> ThreadLocalRandom.current().nextLong() % Short.MIN_VALUE); @@ -720,6 +724,7 @@ public static DictionaryBlock createRandomDictionaryBlock(Block dictionary, int return new DictionaryBlock(idsOffset, positionCount, dictionary, ids, false, randomDictionaryId()); } + // Note: Make sure positionCount is sufficiently large if nestedNullRate or primitiveNullRate is greater than 0 public static Block createRandomBlockForType( Type type, int positionCount, diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java index a98875bd5dbd4..b950f8fb783b0 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java @@ -247,11 +247,11 @@ private static void testRandomBlocks(Type type, List wrappings) List types = ImmutableList.of(type); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 10, 0, 0, false, wrappings))); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 11, 0, 0, false, wrappings))); - assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 20, 0.5f, 0, false, wrappings))); + assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 100, 0.5f, 0, false, wrappings))); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 33, 0, 0, false, wrappings))); assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 27, 0.5f, 0, false, wrappings))); - assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 22, 0, 0.5f, false, wrappings))); - assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 28, 0.5f, 0.5f, false, wrappings))); + assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 100, 0, 0.5f, false, wrappings))); + assertRoundTrip(types, ImmutableList.of(createRandomBlockForType(type, 100, 0.5f, 0.5f, false, wrappings))); } private static void assertRoundTrip(List types, List blocks) From 22d97dde8c213eeb345ca3a9ac62aac6ce567bbb Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Tue, 28 Apr 2020 12:57:18 -0400 Subject: [PATCH 031/129] Fix duplicated table name in TestHiveIntegrationSmokeTest --- .../hive/TestHiveIntegrationSmokeTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index 89397aa9b7e80..6e935f013c27a 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -4737,7 +4737,7 @@ public void testPageFileFormatSmallStripe() .build(); assertUpdate( smallStripeSession, - "CREATE TABLE test_pagefile_orders\n" + + "CREATE TABLE test_pagefile_small_stripe\n" + "WITH (\n" + "format = 'PAGEFILE'\n" + ") AS\n" + @@ -4746,11 +4746,11 @@ public void testPageFileFormatSmallStripe() "FROM tpch.orders", "SELECT count(*) FROM orders"); - assertQuery("SELECT count(*) FROM test_pagefile_orders", "SELECT count(*) FROM orders"); + assertQuery("SELECT count(*) FROM test_pagefile_small_stripe", "SELECT count(*) FROM orders"); - assertQuery("SELECT sum(custkey) FROM test_pagefile_orders", "SELECT sum(custkey) FROM orders"); + assertQuery("SELECT sum(custkey) FROM test_pagefile_small_stripe", "SELECT sum(custkey) FROM orders"); - assertUpdate("DROP TABLE test_pagefile_orders"); + assertUpdate("DROP TABLE test_pagefile_small_stripe"); } @Test @@ -4764,7 +4764,7 @@ public void testPageFileFormatSmallSplitSize() assertUpdate( testSession, - "CREATE TABLE test_pagefile_orders\n" + + "CREATE TABLE test_pagefile_small_split\n" + "WITH (\n" + "format = 'PAGEFILE'\n" + ") AS\n" + @@ -4773,11 +4773,11 @@ public void testPageFileFormatSmallSplitSize() "FROM tpch.orders", "SELECT count(*) FROM orders"); - assertQuery(testSession, "SELECT count(*) FROM test_pagefile_orders", "SELECT count(*) FROM orders"); + assertQuery(testSession, "SELECT count(*) FROM test_pagefile_small_split", "SELECT count(*) FROM orders"); - assertQuery(testSession, "SELECT sum(custkey) FROM test_pagefile_orders", "SELECT sum(custkey) FROM orders"); + assertQuery(testSession, "SELECT sum(custkey) FROM test_pagefile_small_split", "SELECT sum(custkey) FROM orders"); - assertUpdate("DROP TABLE test_pagefile_orders"); + assertUpdate("DROP TABLE test_pagefile_small_split"); } private static Consumer assertTableWriterMergeNodeIsPresent() From c9f3fb634808508c3245ef88fe54745bc76f358b Mon Sep 17 00:00:00 2001 From: Andrii Rosa Date: Wed, 22 Apr 2020 13:35:53 -0400 Subject: [PATCH 032/129] Refactor presto spark launcher Extract Presto Spark bootstraping code into the PrestoSparkRunner. Having a runner that can be initialized without providing the ClientOptions is more flexible, as it is not strongly coupled with the CLI arguments. --- .../PrestoSparkDistributionFactory.java | 19 -- .../spark/launcher/PrestoSparkLauncher.java | 25 +-- .../launcher/PrestoSparkLauncherCommand.java | 166 ++------------- .../spark/launcher/PrestoSparkRunner.java | 189 ++++++++++++++++++ 4 files changed, 208 insertions(+), 191 deletions(-) delete mode 100644 presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkDistributionFactory.java create mode 100644 presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkRunner.java diff --git a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkDistributionFactory.java b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkDistributionFactory.java deleted file mode 100644 index 14ebd5b0a6693..0000000000000 --- a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkDistributionFactory.java +++ /dev/null @@ -1,19 +0,0 @@ -/* - * 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 com.facebook.presto.spark.launcher; - -public interface PrestoSparkDistributionFactory -{ - PrestoSparkDistribution create(PrestoSparkClientOptions clientOptions); -} diff --git a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncher.java b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncher.java index 8fdef2a303ccb..db914f005d47c 100644 --- a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncher.java +++ b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncher.java @@ -15,15 +15,8 @@ import io.airlift.airline.ParseException; import io.airlift.airline.SingleCommand; -import org.apache.spark.SparkConf; -import org.apache.spark.SparkContext; - -import java.io.File; import static com.facebook.presto.spark.launcher.Commands.parseCommandNoValidate; -import static com.facebook.presto.spark.launcher.LauncherUtils.checkFile; -import static com.facebook.presto.spark.launcher.LauncherUtils.loadCatalogProperties; -import static com.facebook.presto.spark.launcher.LauncherUtils.loadProperties; import static io.airlift.airline.SingleCommand.singleCommand; import static java.lang.System.exit; @@ -32,22 +25,6 @@ public class PrestoSparkLauncher private PrestoSparkLauncher() {} public static void main(String[] args) - { - runPrestoSpark(args, clientOptions -> { - SparkConf sparkConfiguration = new SparkConf() - .setAppName("Presto"); - SparkContext sparkContext = new SparkContext(sparkConfiguration); - TargzBasedPackageSupplier packageSupplier = new TargzBasedPackageSupplier(new File(clientOptions.packagePath)); - packageSupplier.deploy(sparkContext); - return new PrestoSparkDistribution( - sparkContext, - packageSupplier, - loadProperties(checkFile(new File(clientOptions.config))), - loadCatalogProperties(new File(clientOptions.catalogs))); - }); - } - - public static void runPrestoSpark(String[] args, PrestoSparkDistributionFactory distributionFactory) { SingleCommand command = singleCommand(PrestoSparkLauncherCommand.class); @@ -69,7 +46,7 @@ public static void runPrestoSpark(String[] args, PrestoSparkDistributionFactory } try { - console.run(distributionFactory); + console.run(); exit(0); } catch (RuntimeException e) { diff --git a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncherCommand.java b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncherCommand.java index bd8abd0fdca58..567f6eb105c97 100644 --- a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncherCommand.java +++ b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkLauncherCommand.java @@ -13,40 +13,20 @@ */ package com.facebook.presto.spark.launcher; -import com.facebook.presto.spark.classloader_interface.IPrestoSparkQueryExecution; -import com.facebook.presto.spark.classloader_interface.IPrestoSparkQueryExecutionFactory; -import com.facebook.presto.spark.classloader_interface.IPrestoSparkService; -import com.facebook.presto.spark.classloader_interface.IPrestoSparkServiceFactory; -import com.facebook.presto.spark.classloader_interface.IPrestoSparkTaskExecutorFactory; -import com.facebook.presto.spark.classloader_interface.PrestoSparkConfiguration; -import com.facebook.presto.spark.classloader_interface.PrestoSparkSession; -import com.facebook.presto.spark.classloader_interface.PrestoSparkTaskExecutorFactoryProvider; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import io.airlift.airline.Command; import io.airlift.airline.HelpOption; +import org.apache.spark.SparkConf; +import org.apache.spark.SparkContext; import javax.inject.Inject; import java.io.File; -import java.io.Serializable; -import java.io.UncheckedIOException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.ServiceLoader; -import static com.facebook.presto.spark.launcher.LauncherUtils.checkDirectory; import static com.facebook.presto.spark.launcher.LauncherUtils.checkFile; +import static com.facebook.presto.spark.launcher.LauncherUtils.loadCatalogProperties; +import static com.facebook.presto.spark.launcher.LauncherUtils.loadProperties; import static com.facebook.presto.spark.launcher.LauncherUtils.readFileUtf8; -import static java.lang.String.format; -import static java.util.Arrays.asList; -import static java.util.Arrays.sort; -import static java.util.Objects.requireNonNull; @Command(name = "presto-spark-launcher", description = "Presto on Spark launcher") public class PrestoSparkLauncherCommand @@ -60,134 +40,24 @@ public class PrestoSparkLauncherCommand @Inject public PrestoSparkClientOptions clientOptions = new PrestoSparkClientOptions(); - public void run(PrestoSparkDistributionFactory prestoSparkDistributionFactory) + public void run() { - PrestoSparkDistribution distribution = prestoSparkDistributionFactory.create(clientOptions); + SparkConf sparkConfiguration = new SparkConf() + .setAppName("Presto"); + SparkContext sparkContext = new SparkContext(sparkConfiguration); - String query = readFileUtf8(checkFile(new File(clientOptions.file))); - - CachingServiceFactory serviceFactory = new CachingServiceFactory(distribution); - IPrestoSparkService service = serviceFactory.createService(); - IPrestoSparkQueryExecutionFactory queryExecutionFactory = service.getQueryExecutionFactory(); - PrestoSparkSession session = createSessionInfo(clientOptions); - IPrestoSparkQueryExecution queryExecution = queryExecutionFactory.create( - distribution.getSparkContext(), - session, - query, - new DistributionBasedPrestoSparkTaskExecutorFactoryProvider(serviceFactory)); - - List> results = queryExecution.execute(); - - System.out.println("Rows: " + results.size()); - results.forEach(System.out::println); - } - - private static PrestoSparkSession createSessionInfo(PrestoSparkClientOptions clientOptions) - { - // TODO: add all important session parameters to client options - return new PrestoSparkSession( - "test", - Optional.empty(), - ImmutableMap.of(), - Optional.ofNullable(clientOptions.catalog), - Optional.ofNullable(clientOptions.schema), - Optional.empty(), - Optional.empty(), - ImmutableSet.of(), - Optional.empty(), - Optional.empty(), - ImmutableMap.of(), - ImmutableMap.of(), - Optional.empty()); - } - - private static IPrestoSparkServiceFactory createServiceFactory(File directory) - { - checkDirectory(directory); - List urls = new ArrayList<>(); - File[] files = directory.listFiles(); - if (files != null) { - sort(files); - } - for (File file : files) { - try { - urls.add(file.toURI().toURL()); - } - catch (MalformedURLException e) { - throw new UncheckedIOException(e); - } - } - PrestoSparkLoader prestoSparkLoader = new PrestoSparkLoader( - urls, - PrestoSparkLauncher.class.getClassLoader(), - asList("org.apache.spark.", "com.facebook.presto.spark.classloader_interface.", "scala.")); - ServiceLoader serviceLoader = ServiceLoader.load(IPrestoSparkServiceFactory.class, prestoSparkLoader); - return serviceLoader.iterator().next(); - } + TargzBasedPackageSupplier packageSupplier = new TargzBasedPackageSupplier(new File(clientOptions.packagePath)); + packageSupplier.deploy(sparkContext); - public static class CachingServiceFactory - implements Serializable - { - private static IPrestoSparkService service; - - private static String currentPackagePath; - private static Map currentConfigProperties; - private static Map> currentCatalogProperties; - - private final PackageSupplier packageSupplier; - private final Map configProperties; - private final Map> catalogProperties; - - public CachingServiceFactory(PrestoSparkDistribution distribution) - { - requireNonNull(distribution, "distribution is null"); - this.packageSupplier = distribution.getPackageSupplier(); - this.configProperties = distribution.getConfigProperties(); - this.catalogProperties = distribution.getCatalogProperties(); - } - - public IPrestoSparkService createService() - { - synchronized (CachingServiceFactory.class) { - if (service == null) { - currentPackagePath = checkDirectory(packageSupplier.getPrestoSparkPackageDirectory()).getAbsolutePath(); - currentConfigProperties = configProperties; - currentCatalogProperties = catalogProperties; - - File pluginsDirectory = checkDirectory(new File(currentPackagePath, "plugin")); - PrestoSparkConfiguration configuration = new PrestoSparkConfiguration(configProperties, pluginsDirectory.getAbsolutePath(), catalogProperties); - IPrestoSparkServiceFactory serviceFactory = createServiceFactory(checkDirectory(new File(currentPackagePath, "lib"))); - service = serviceFactory.createService(configuration); - } - checkEquals("packagePath", currentPackagePath, packageSupplier.getPrestoSparkPackageDirectory().getAbsolutePath()); - checkEquals("configProperties", currentConfigProperties, configProperties); - checkEquals("catalogProperties", currentCatalogProperties, catalogProperties); - return service; - } - } + PrestoSparkDistribution distribution = new PrestoSparkDistribution( + sparkContext, + packageSupplier, + loadProperties(checkFile(new File(clientOptions.config))), + loadCatalogProperties(new File(clientOptions.catalogs))); - public static void checkEquals(String name, Object first, Object second) - { - if (!Objects.equals(first, second)) { - throw new IllegalStateException(format("%s is different: %s != %s", name, first, second)); - } - } - } - - public static class DistributionBasedPrestoSparkTaskExecutorFactoryProvider - implements PrestoSparkTaskExecutorFactoryProvider - { - private final CachingServiceFactory serviceFactory; - - public DistributionBasedPrestoSparkTaskExecutorFactoryProvider(CachingServiceFactory serviceFactory) - { - this.serviceFactory = requireNonNull(serviceFactory, "serviceFactory is null"); - } + String query = readFileUtf8(checkFile(new File(clientOptions.file))); - @Override - public IPrestoSparkTaskExecutorFactory get() - { - return serviceFactory.createService().getTaskExecutorFactory(); - } + PrestoSparkRunner runner = new PrestoSparkRunner(distribution); + runner.run(clientOptions.catalog, clientOptions.schema, query, ImmutableMap.of(), ImmutableMap.of()); } } diff --git a/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkRunner.java b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkRunner.java new file mode 100644 index 0000000000000..fa014ff196e9a --- /dev/null +++ b/presto-spark-launcher/src/main/java/com/facebook/presto/spark/launcher/PrestoSparkRunner.java @@ -0,0 +1,189 @@ +/* + * 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 com.facebook.presto.spark.launcher; + +import com.facebook.presto.spark.classloader_interface.IPrestoSparkQueryExecution; +import com.facebook.presto.spark.classloader_interface.IPrestoSparkQueryExecutionFactory; +import com.facebook.presto.spark.classloader_interface.IPrestoSparkService; +import com.facebook.presto.spark.classloader_interface.IPrestoSparkServiceFactory; +import com.facebook.presto.spark.classloader_interface.IPrestoSparkTaskExecutorFactory; +import com.facebook.presto.spark.classloader_interface.PrestoSparkConfiguration; +import com.facebook.presto.spark.classloader_interface.PrestoSparkSession; +import com.facebook.presto.spark.classloader_interface.PrestoSparkTaskExecutorFactoryProvider; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; + +import java.io.File; +import java.io.Serializable; +import java.io.UncheckedIOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.ServiceLoader; + +import static com.facebook.presto.spark.launcher.LauncherUtils.checkDirectory; +import static java.lang.String.format; +import static java.util.Arrays.asList; +import static java.util.Arrays.sort; +import static java.util.Objects.requireNonNull; + +public class PrestoSparkRunner +{ + private final PrestoSparkDistribution distribution; + + public PrestoSparkRunner(PrestoSparkDistribution distribution) + { + this.distribution = requireNonNull(distribution, "distribution is null"); + } + + public void run( + String catalog, + String schema, + String query, + Map sessionProperties, + Map> catalogSessionProperties) + { + CachingServiceFactory serviceFactory = new CachingServiceFactory(distribution); + IPrestoSparkService service = serviceFactory.createService(); + IPrestoSparkQueryExecutionFactory queryExecutionFactory = service.getQueryExecutionFactory(); + PrestoSparkSession session = createSessionInfo(catalog, schema, sessionProperties, catalogSessionProperties); + IPrestoSparkQueryExecution queryExecution = queryExecutionFactory.create( + distribution.getSparkContext(), + session, + query, + new DistributionBasedPrestoSparkTaskExecutorFactoryProvider(serviceFactory)); + + List> results = queryExecution.execute(); + + System.out.println("Rows: " + results.size()); + results.forEach(System.out::println); + } + + private static PrestoSparkSession createSessionInfo( + String catalog, + String schema, + Map sessionProperties, + Map> catalogSessionProperties) + { + // TODO: add all important session parameters to client options + return new PrestoSparkSession( + "test", + Optional.empty(), + ImmutableMap.of(), + Optional.ofNullable(catalog), + Optional.ofNullable(schema), + Optional.empty(), + Optional.empty(), + ImmutableSet.of(), + Optional.empty(), + Optional.empty(), + sessionProperties, + catalogSessionProperties, + Optional.empty()); + } + + private static IPrestoSparkServiceFactory createServiceFactory(File directory) + { + checkDirectory(directory); + List urls = new ArrayList<>(); + File[] files = directory.listFiles(); + if (files != null) { + sort(files); + } + for (File file : files) { + try { + urls.add(file.toURI().toURL()); + } + catch (MalformedURLException e) { + throw new UncheckedIOException(e); + } + } + PrestoSparkLoader prestoSparkLoader = new PrestoSparkLoader( + urls, + PrestoSparkLauncher.class.getClassLoader(), + asList("org.apache.spark.", "com.facebook.presto.spark.classloader_interface.", "scala.")); + ServiceLoader serviceLoader = ServiceLoader.load(IPrestoSparkServiceFactory.class, prestoSparkLoader); + return serviceLoader.iterator().next(); + } + + private static class CachingServiceFactory + implements Serializable + { + private static IPrestoSparkService service; + + private static String currentPackagePath; + private static Map currentConfigProperties; + private static Map> currentCatalogProperties; + + private final PackageSupplier packageSupplier; + private final Map configProperties; + private final Map> catalogProperties; + + public CachingServiceFactory(PrestoSparkDistribution distribution) + { + requireNonNull(distribution, "distribution is null"); + this.packageSupplier = distribution.getPackageSupplier(); + this.configProperties = distribution.getConfigProperties(); + this.catalogProperties = distribution.getCatalogProperties(); + } + + public IPrestoSparkService createService() + { + synchronized (CachingServiceFactory.class) { + if (service == null) { + currentPackagePath = checkDirectory(packageSupplier.getPrestoSparkPackageDirectory()).getAbsolutePath(); + currentConfigProperties = configProperties; + currentCatalogProperties = catalogProperties; + + File pluginsDirectory = checkDirectory(new File(currentPackagePath, "plugin")); + PrestoSparkConfiguration configuration = new PrestoSparkConfiguration(configProperties, pluginsDirectory.getAbsolutePath(), catalogProperties); + IPrestoSparkServiceFactory serviceFactory = createServiceFactory(checkDirectory(new File(currentPackagePath, "lib"))); + service = serviceFactory.createService(configuration); + } + checkEquals("packagePath", currentPackagePath, packageSupplier.getPrestoSparkPackageDirectory().getAbsolutePath()); + checkEquals("configProperties", currentConfigProperties, configProperties); + checkEquals("catalogProperties", currentCatalogProperties, catalogProperties); + return service; + } + } + + public static void checkEquals(String name, Object first, Object second) + { + if (!Objects.equals(first, second)) { + throw new IllegalStateException(format("%s is different: %s != %s", name, first, second)); + } + } + } + + private static class DistributionBasedPrestoSparkTaskExecutorFactoryProvider + implements PrestoSparkTaskExecutorFactoryProvider + { + private final CachingServiceFactory serviceFactory; + + public DistributionBasedPrestoSparkTaskExecutorFactoryProvider(CachingServiceFactory serviceFactory) + { + this.serviceFactory = requireNonNull(serviceFactory, "serviceFactory is null"); + } + + @Override + public IPrestoSparkTaskExecutorFactory get() + { + return serviceFactory.createService().getTaskExecutorFactory(); + } + } +} From 84451771c18eed5c81a6c8a4e077c8f87de9a1d2 Mon Sep 17 00:00:00 2001 From: miller <920555980@qq.com> Date: Wed, 29 Apr 2020 16:00:55 +0800 Subject: [PATCH 033/129] read druid query response stream by page --- .../presto/druid/DruidBrokerPageSource.java | 82 +++++++++++-------- .../facebook/presto/druid/DruidClient.java | 66 +++++++++++---- .../presto/druid/DruidResultFormat.java | 35 ++++++++ 3 files changed, 134 insertions(+), 49 deletions(-) create mode 100644 presto-druid/src/main/java/com/facebook/presto/druid/DruidResultFormat.java diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java index 4df8542eeb09a..707356e7d590f 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java @@ -37,12 +37,12 @@ import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; +import java.io.BufferedReader; import java.io.IOException; -import java.util.Iterator; +import java.io.InputStreamReader; import java.util.List; import static com.facebook.presto.druid.DruidErrorCode.DRUID_BROKER_RESULT_ERROR; -import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; @@ -51,23 +51,32 @@ public class DruidBrokerPageSource { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapperProvider().get(); - private final GeneratedDql brokerDql; private final List columnHandles; - private final DruidClient druidClient; private boolean finished; private long readTimeNanos; private long completedBytes; private long completedPositions; + private BufferedReader responseStream; + private final PageBuilder pageBuilder; + private List columnTypes; public DruidBrokerPageSource( GeneratedDql brokerDql, List columnHandles, DruidClient druidClient) { - this.brokerDql = requireNonNull(brokerDql, "broker is null"); + requireNonNull(brokerDql, "broker is null"); this.columnHandles = ImmutableList.copyOf(requireNonNull(columnHandles, "columnHandles is null")); - this.druidClient = requireNonNull(druidClient, "druid client is null"); + requireNonNull(druidClient, "druid client is null"); + this.responseStream = new BufferedReader(new InputStreamReader(druidClient.getData(brokerDql.getDql()))); + List handles = columnHandles.stream() + .map(column -> (DruidColumnHandle) column) + .collect(toImmutableList()); + this.columnTypes = handles.stream() + .map(DruidColumnHandle::getColumnType) + .collect(toImmutableList()); + this.pageBuilder = new PageBuilder(this.columnTypes); } @Override @@ -103,32 +112,20 @@ public Page getNextPage() long start = System.nanoTime(); try { - List handles = columnHandles.stream() - .map(column -> (DruidColumnHandle) column) - .collect(toImmutableList()); - - List columnTypes = handles.stream() - .map(DruidColumnHandle::getColumnType) - .collect(toImmutableList()); - - PageBuilder pageBuilder = new PageBuilder(columnTypes); - - String data = druidClient.getData(brokerDql.getDql()); - JsonNode rootNode; - try { - rootNode = OBJECT_MAPPER.readTree(data); - checkArgument(rootNode.isArray(), "broker Druid query should return Json Array: " + data); - ArrayNode arrayNode = (ArrayNode) rootNode; - Iterator iterator = arrayNode.elements(); - while (iterator.hasNext()) { - JsonNode node = iterator.next(); - Iterator fieldNamesIterator = node.fieldNames(); + String readLine; + while ((readLine = responseStream.readLine()) != null) { + // if read a blank line,it means read finish + if (readLine.isEmpty()) { + finished = true; + break; + } + else { + JsonNode rootNode = OBJECT_MAPPER.readTree(readLine); + ArrayNode arrayNode = (ArrayNode) rootNode; for (int i = 0; i < columnHandles.size(); i++) { Type type = columnTypes.get(i); BlockBuilder blockBuilder = pageBuilder.getBlockBuilder(i); - - String fieldName = fieldNamesIterator.next(); - JsonNode value = node.get(fieldName); + JsonNode value = arrayNode.get(i); if (value == null) { blockBuilder.appendNull(); continue; @@ -151,21 +148,36 @@ else if (type instanceof TimestampType) { } else { Slice slice = Slices.utf8Slice(value.textValue()); - blockBuilder.writeBytes(slice, 0, slice.length()).closeEntry(); - completedBytes += slice.length(); + type.writeSlice(blockBuilder, slice); } } } + pageBuilder.declarePosition(); + if (pageBuilder.isFull()) { + break; + } } - catch (IOException e) { - throw new PrestoException(DRUID_BROKER_RESULT_ERROR, e); + // if responseStream.readLine() is null, it means read finish + if (readLine == null) { + finished = true; + return null; + } + + // only return a page if the buffer is full or we are finishing + if (pageBuilder.isEmpty() || (!finished && !pageBuilder.isFull())) { + return null; } - pageBuilder.declarePositions(rootNode.size()); + Page page = pageBuilder.build(); completedPositions += page.getPositionCount(); - finished = true; + completedBytes += page.getSizeInBytes(); + pageBuilder.reset(); return page; } + catch (IOException e) { + finished = true; + throw new PrestoException(DRUID_BROKER_RESULT_ERROR, "Parse druid client response error", e); + } finally { readTimeNanos += System.nanoTime() - start; } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java index 5800197ac4e50..20bb766fc4b72 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java @@ -16,15 +16,19 @@ import com.facebook.airlift.http.client.HttpClient; import com.facebook.airlift.http.client.HttpUriBuilder; import com.facebook.airlift.http.client.Request; +import com.facebook.airlift.http.client.ResponseHandler; import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.druid.metadata.DruidColumnInfo; import com.facebook.presto.druid.metadata.DruidSegmentIdWrapper; import com.facebook.presto.druid.metadata.DruidSegmentInfo; import com.facebook.presto.druid.metadata.DruidTableInfo; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import javax.inject.Inject; +import java.io.IOException; +import java.io.InputStream; import java.net.URI; import java.util.List; @@ -33,11 +37,12 @@ import static com.facebook.airlift.http.client.Request.Builder.prepareGet; import static com.facebook.airlift.http.client.Request.Builder.preparePost; import static com.facebook.airlift.http.client.StaticBodyGenerator.createStaticBodyGenerator; -import static com.facebook.airlift.http.client.StringResponseHandler.createStringResponseHandler; import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; +import static com.facebook.presto.druid.DruidErrorCode.DRUID_BROKER_RESULT_ERROR; +import static com.facebook.presto.druid.DruidResultFormat.ARRAY_LINES; +import static com.facebook.presto.druid.DruidResultFormat.OBJECT; import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.net.HttpHeaders.ACCEPT; import static com.google.common.net.HttpHeaders.CONTENT_TYPE; import static com.google.common.net.MediaType.JSON_UTF_8; import static java.lang.String.format; @@ -47,7 +52,7 @@ public class DruidClient { private static final String METADATA_PATH = "/druid/coordinator/v1/metadata"; private static final String SQL_ENDPOINT = "/druid/v2/sql"; - + private static final String APPLICATION_JSON = "application/json"; private static final String LIST_TABLE_QUERY = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'druid'"; private static final String GET_COLUMN_TEMPLATE = "SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'druid' AND TABLE_NAME = '%s'"; private static final String GET_SEGMENTS_ID_TEMPLATE = "SELECT segment_id FROM sys.segments WHERE datasource = '%s' AND is_published = 1"; @@ -89,19 +94,19 @@ public List getSchemas() public List getTables() { - return httpClient.execute(prepareQuery(LIST_TABLE_QUERY), createJsonResponseHandler(LIST_TABLE_NAME_CODEC)).stream() + return httpClient.execute(prepareMetadataQuery(LIST_TABLE_QUERY), createJsonResponseHandler(LIST_TABLE_NAME_CODEC)).stream() .map(DruidTableInfo::getTableName) .collect(toImmutableList()); } public List getColumnDataType(String tableName) { - return httpClient.execute(prepareQuery(format(GET_COLUMN_TEMPLATE, tableName)), createJsonResponseHandler(LIST_COLUMN_INFO_CODEC)); + return httpClient.execute(prepareMetadataQuery(format(GET_COLUMN_TEMPLATE, tableName)), createJsonResponseHandler(LIST_COLUMN_INFO_CODEC)); } public List getDataSegmentId(String tableName) { - return httpClient.execute(prepareQuery(format(GET_SEGMENTS_ID_TEMPLATE, tableName)), createJsonResponseHandler(LIST_SEGMENT_ID_CODEC)).stream() + return httpClient.execute(prepareMetadataQuery(format(GET_SEGMENTS_ID_TEMPLATE, tableName)), createJsonResponseHandler(LIST_SEGMENT_ID_CODEC)).stream() .map(wrapper -> wrapper.getSegmentId()) .collect(toImmutableList()); } @@ -119,30 +124,63 @@ public DruidSegmentInfo getSingleSegmentInfo(String dataSource, String segmentId return httpClient.execute(request, createJsonResponseHandler(SEGMENT_INFO_CODEC)); } - public String getData(String dql) + public InputStream getData(String dql) { - return httpClient.execute(prepareQuery(dql), createStringResponseHandler()).getBody(); + return httpClient.execute(prepareDataQuery(dql), new StreamingJsonResponseHandler()); } private static Request.Builder setContentTypeHeaders(Request.Builder requestBuilder) { return requestBuilder - .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()) - .setHeader(ACCEPT, JSON_UTF_8.toString()); + .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()); + } + + private static byte[] createRequestBody(String query, DruidResultFormat resultFormat, boolean queryHeader) + { + return format("{\"query\":\"%s\",\"resultFormat\":\"%s\",\"header\": %b }\n", query, resultFormat.getResultFormat(), queryHeader).getBytes(); } - private static byte[] createRequestBody(String query) + private Request prepareMetadataQuery(String query) { - return format("{\"query\":\"%s\"}\n", query).getBytes(); + HttpUriBuilder uriBuilder = uriBuilderFrom(druidBroker).replacePath(SQL_ENDPOINT); + + return setContentTypeHeaders(preparePost()) + .setUri(uriBuilder.build()) + .setBodyGenerator(createStaticBodyGenerator(createRequestBody(query, OBJECT, false))) + .build(); } - private Request prepareQuery(String query) + private Request prepareDataQuery(String query) { HttpUriBuilder uriBuilder = uriBuilderFrom(druidBroker).replacePath(SQL_ENDPOINT); return setContentTypeHeaders(preparePost()) .setUri(uriBuilder.build()) - .setBodyGenerator(createStaticBodyGenerator(createRequestBody(query))) + .setBodyGenerator(createStaticBodyGenerator(createRequestBody(query, ARRAY_LINES, false))) .build(); } + + private static class StreamingJsonResponseHandler + implements ResponseHandler + { + @Override + public InputStream handleException(Request request, Exception exception) + { + throw new PrestoException(DRUID_BROKER_RESULT_ERROR, "Request to worker failed", exception); + } + + @Override + public InputStream handle(Request request, com.facebook.airlift.http.client.Response response) + { + try { + if (APPLICATION_JSON.equals(response.getHeader(CONTENT_TYPE))) { + return response.getInputStream(); + } + throw new PrestoException(DRUID_BROKER_RESULT_ERROR, "Response received was not of type " + APPLICATION_JSON); + } + catch (IOException e) { + throw new PrestoException(DRUID_BROKER_RESULT_ERROR, "Unable to read response from worker", e); + } + } + } } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidResultFormat.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidResultFormat.java new file mode 100644 index 0000000000000..068c320d456f9 --- /dev/null +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidResultFormat.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 com.facebook.presto.druid; + +public enum DruidResultFormat +{ + OBJECT("object"), + ARRAY("array"), + OBJECT_LINES("objectLines"), + ARRAY_LINES("arrayLines"), + CSV("csv"); + + public String getResultFormat() + { + return resultFormat; + } + + private String resultFormat; + + DruidResultFormat(String resultFormat) + { + this.resultFormat = resultFormat; + } +} From 52eaac51fbc9a3e15857266ca06b4ec5db64ded4 Mon Sep 17 00:00:00 2001 From: Andrii Rosa Date: Tue, 28 Apr 2020 06:55:08 -0400 Subject: [PATCH 034/129] Fix interruption handling in Driver The issue was discovered when testing Presto on Spark. Spark emits the `interrupt` signal to cancel the task. If the interrupt signal is emitted when the Driver is about to finish (before the `isFinished` method is called) the execution never finishes. The `finish` method tries to ackquire the lock that alwayws returns `false` when the interrupted flag is set. Since the `false` is interpreted as a failure to aquire the lock, the finish is called again and again as it never succeeds. Since the timeout for aquiring the lock is tiny (<=100ms) it is fine to try to aquire the lock in a non interruptible manner to avoid taking care of non trivial semantics of interrupting. --- .../com/facebook/presto/operator/Driver.java | 12 ++--- .../presto/util/MoreUninterruptibles.java | 51 +++++++++++++++++++ 2 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 presto-main/src/main/java/com/facebook/presto/util/MoreUninterruptibles.java diff --git a/presto-main/src/main/java/com/facebook/presto/operator/Driver.java b/presto-main/src/main/java/com/facebook/presto/operator/Driver.java index 4b9620b71ac77..0533c8fb66a3d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/Driver.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/Driver.java @@ -47,6 +47,7 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.operator.Operator.NOT_BLOCKED; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; +import static com.facebook.presto.util.MoreUninterruptibles.tryLockUninterruptibly; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Throwables.throwIfUnchecked; @@ -660,13 +661,7 @@ private Optional tryWithLock(long timeout, TimeUnit unit, Supplier tas { checkLockNotHeld("Lock can not be reacquired"); - boolean acquired = false; - try { - acquired = exclusiveLock.tryLock(timeout, unit); - } - catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } + boolean acquired = exclusiveLock.tryLock(timeout, unit); if (!acquired) { return Optional.empty(); @@ -739,10 +734,9 @@ public boolean tryLock() } public boolean tryLock(long timeout, TimeUnit unit) - throws InterruptedException { checkState(!lock.isHeldByCurrentThread(), "Lock is not reentrant"); - boolean acquired = lock.tryLock(timeout, unit); + boolean acquired = tryLockUninterruptibly(lock, timeout, unit); if (acquired) { setOwner(); } diff --git a/presto-main/src/main/java/com/facebook/presto/util/MoreUninterruptibles.java b/presto-main/src/main/java/com/facebook/presto/util/MoreUninterruptibles.java new file mode 100644 index 0000000000000..a613badea37c6 --- /dev/null +++ b/presto-main/src/main/java/com/facebook/presto/util/MoreUninterruptibles.java @@ -0,0 +1,51 @@ +/* + * 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 com.facebook.presto.util; + +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Lock; + +import static java.util.concurrent.TimeUnit.NANOSECONDS; + +public class MoreUninterruptibles +{ + private MoreUninterruptibles() {} + + /** + * Migrate to https://github.com/google/guava/pull/3880 once merged and released + */ + public static boolean tryLockUninterruptibly(Lock lock, long timeout, TimeUnit unit) + { + boolean interrupted = false; + try { + long remainingNanos = unit.toNanos(timeout); + long end = System.nanoTime() + remainingNanos; + + while (true) { + try { + return lock.tryLock(remainingNanos, NANOSECONDS); + } + catch (InterruptedException e) { + interrupted = true; + remainingNanos = end - System.nanoTime(); + } + } + } + finally { + if (interrupted) { + Thread.currentThread().interrupt(); + } + } + } +} From 34500b106c5309ac5c6e2b9af71e114da60fd838 Mon Sep 17 00:00:00 2001 From: Tim Meehan Date: Fri, 7 Feb 2020 14:12:35 -0800 Subject: [PATCH 035/129] Add function scale_qdigest This function scale all the counts of a qdigest by a given factor. One example use case would be to add a decaying weight to daily summary values, which are then merged into a single digest. The proposed scalar function signature is as follows scale_qdigest(qdigest, w) -> qdigest Co-authored-by: Trong Nguyen --- .../src/main/sphinx/functions/qdigest.rst | 5 + .../scalar/QuantileDigestFunctions.java | 32 +++++ .../operator/scalar/FunctionAssertions.java | 7 ++ .../scalar/TestQuantileDigestFunctions.java | 118 ++++++++++++++++++ 4 files changed, 162 insertions(+) create mode 100644 presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java diff --git a/presto-docs/src/main/sphinx/functions/qdigest.rst b/presto-docs/src/main/sphinx/functions/qdigest.rst index ec7152af8b0b1..110123de28f5e 100644 --- a/presto-docs/src/main/sphinx/functions/qdigest.rst +++ b/presto-docs/src/main/sphinx/functions/qdigest.rst @@ -30,6 +30,11 @@ Functions Returns the approximate percentile values from the quantile digest given the number ``quantile`` between 0 and 1. +.. function:: scale_qdigest(qdigest(T), scale_factor) -> qdigest(T) + + Returns a ``qdigest`` whose distribution has been scaled by a factor + specified by ``scale_factor``. + .. function:: values_at_quantiles(qdigest(T), quantiles) -> T Returns the approximate percentile values as an array given the input diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java index bf0c3cbd7a694..cddf8f5f5a860 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java @@ -101,6 +101,38 @@ public static Block valuesAtQuantilesBigint(@SqlType("qdigest(bigint)") Slice in return output.build(); } + @ScalarFunction("scale_qdigest") + @Description("Scale a quantile digest according to a new weight") + @SqlType("qdigest(double)") + public static Slice scaleQuantileDigestDouble(@SqlType("qdigest(double)") Slice input, @SqlType(StandardTypes.DOUBLE) double scale) + { + return scaleQuantileDigest(input, scale); + } + + @ScalarFunction("scale_qdigest") + @Description("Scale a quantile digest according to a new weight") + @SqlType("qdigest(real)") + public static Slice scaleQuantileDigestReal(@SqlType("qdigest(real)") Slice input, @SqlType(StandardTypes.DOUBLE) double scale) + { + return scaleQuantileDigest(input, scale); + } + + @ScalarFunction("scale_qdigest") + @Description("Scale a quantile digest according to a new weight") + @SqlType("qdigest(bigint)") + public static Slice scaleQuantileDigestBigint(@SqlType("qdigest(bigint)") Slice input, @SqlType(StandardTypes.DOUBLE) double scale) + { + return scaleQuantileDigest(input, scale); + } + + private static Slice scaleQuantileDigest(Slice input, double scale) + { + checkCondition(scale > 0, INVALID_FUNCTION_ARGUMENT, "Scale factor should be positive."); + QuantileDigest digest = new QuantileDigest(input); + digest.scale(scale); + return digest.serialize(); + } + public static double verifyAccuracy(double accuracy) { checkCondition(accuracy > 0 && accuracy < 1, INVALID_FUNCTION_ARGUMENT, "Percentile accuracy must be exclusively between 0 and 1, was %s", accuracy); diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java index 22a3ce5bb06a4..dbd2a54e3c6e3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java @@ -292,6 +292,13 @@ public void executeProjectionWithFullEngine(String projection) MaterializedResult result = runner.execute("SELECT " + projection); } + protected T selectSingleValue(String projection, Type expectedType, Class clazz) + { + Object object = selectSingleValue(projection, expectedType, compiler); + assertEquals(object.getClass(), clazz); + return (T) object; + } + private Object selectSingleValue(String projection, Type expectedType, ExpressionCompiler compiler) { return selectUniqueValue(projection, expectedType, session, compiler); diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java new file mode 100644 index 0000000000000..01afa45627aa4 --- /dev/null +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java @@ -0,0 +1,118 @@ +/* + * 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 com.facebook.presto.operator.scalar; + +import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.type.TypeRegistry; +import com.google.common.collect.ImmutableList; +import org.testng.annotations.Test; + +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.QuantileDigestParametricType.QDIGEST; +import static io.airlift.slice.Slices.wrappedBuffer; +import static java.lang.String.format; +import static java.util.Arrays.asList; +import static java.util.Objects.requireNonNull; +import static org.testng.Assert.assertEquals; + +public class TestQuantileDigestFunctions + extends AbstractTestFunctions +{ + private static final TypeRegistry TYPE_REGISTRY = new TypeRegistry(); + private static final Type QDIGEST_BIGINT = QDIGEST.createType(TYPE_REGISTRY, ImmutableList.of(TypeParameter.of(BIGINT))); + + @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = "Scale factor should be positive\\.") + public void testScaleNegative() + { + QuantileDigest qdigest = new QuantileDigest(1); + addAll(qdigest, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + + functionAssertions.selectSingleValue(format("scale_qdigest(CAST(X'%s' AS qdigest(bigint)), -1)", toHexString(qdigest)), QDIGEST_BIGINT, SqlVarbinary.class); + } + + @Test + public void testScale() + { + QuantileDigest qdigest = new QuantileDigest(1); + addAll(qdigest, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + + // Before scaling. + assertEquals(qdigest.getHistogram(asList(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L)), + asList(new QuantileDigest.Bucket(0, Double.NaN), + new QuantileDigest.Bucket(1, 0), + new QuantileDigest.Bucket(1, 1), + new QuantileDigest.Bucket(1, 2), + new QuantileDigest.Bucket(1, 3), + new QuantileDigest.Bucket(1, 4), + new QuantileDigest.Bucket(1, 5), + new QuantileDigest.Bucket(1, 6), + new QuantileDigest.Bucket(1, 7), + new QuantileDigest.Bucket(1, 8), + new QuantileDigest.Bucket(1, 9))); + + // Scale up. + SqlVarbinary sqlVarbinary = functionAssertions.selectSingleValue(format("scale_qdigest(CAST(X'%s' AS qdigest(bigint)), 2)", toHexString(qdigest)), + QDIGEST_BIGINT, SqlVarbinary.class); + + QuantileDigest scaledQdigest = new QuantileDigest(wrappedBuffer(sqlVarbinary.getBytes())); + + assertEquals(scaledQdigest.getHistogram(asList(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L)), + asList(new QuantileDigest.Bucket(0, Double.NaN), + new QuantileDigest.Bucket(2, 0), + new QuantileDigest.Bucket(2, 1), + new QuantileDigest.Bucket(2, 2), + new QuantileDigest.Bucket(2, 3), + new QuantileDigest.Bucket(2, 4), + new QuantileDigest.Bucket(2, 5), + new QuantileDigest.Bucket(2, 6), + new QuantileDigest.Bucket(2, 7), + new QuantileDigest.Bucket(2, 8), + new QuantileDigest.Bucket(2, 9))); + + // Scale down. + sqlVarbinary = functionAssertions.selectSingleValue(format("scale_qdigest(CAST(X'%s' AS qdigest(bigint)), 0.5)", toHexString(qdigest)), QDIGEST_BIGINT, SqlVarbinary.class); + + scaledQdigest = new QuantileDigest(wrappedBuffer(sqlVarbinary.getBytes())); + + assertEquals(scaledQdigest.getHistogram(asList(0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L)), + asList(new QuantileDigest.Bucket(0, Double.NaN), + new QuantileDigest.Bucket(0.5, 0), + new QuantileDigest.Bucket(0.5, 1), + new QuantileDigest.Bucket(0.5, 2), + new QuantileDigest.Bucket(0.5, 3), + new QuantileDigest.Bucket(0.5, 4), + new QuantileDigest.Bucket(0.5, 5), + new QuantileDigest.Bucket(0.5, 6), + new QuantileDigest.Bucket(0.5, 7), + new QuantileDigest.Bucket(0.5, 8), + new QuantileDigest.Bucket(0.5, 9))); + } + + private static void addAll(QuantileDigest digest, long... values) + { + requireNonNull(values, "values is null"); + for (long value : values) { + digest.add(value); + } + } + + private static String toHexString(QuantileDigest qdigest) + { + return new SqlVarbinary(qdigest.serialize().getBytes()).toString().replaceAll("\\s+", " "); + } +} From a5a04929e51756cac167c14cf73399a0df74f4c5 Mon Sep 17 00:00:00 2001 From: Tim Meehan Date: Sun, 26 Apr 2020 12:43:27 -0700 Subject: [PATCH 036/129] Fix invalid quantile to be a user error --- .../scalar/QuantileDigestFunctions.java | 1 + .../scalar/TestQuantileDigestFunctions.java | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java index cddf8f5f5a860..675611dab9365 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java @@ -59,6 +59,7 @@ public static long valueAtQuantileReal(@SqlType("qdigest(real)") Slice input, @S @SqlType(StandardTypes.BIGINT) public static long valueAtQuantileBigint(@SqlType("qdigest(bigint)") Slice input, @SqlType(StandardTypes.DOUBLE) double quantile) { + checkCondition(quantile >= 0 && quantile <= 1, INVALID_FUNCTION_ARGUMENT, "Quantile should be within bounds [0, 1], was: " + quantile); return new QuantileDigest(input).getQuantile(quantile); } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java index 01afa45627aa4..c541fae8f6177 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java @@ -36,6 +36,41 @@ public class TestQuantileDigestFunctions private static final TypeRegistry TYPE_REGISTRY = new TypeRegistry(); private static final Type QDIGEST_BIGINT = QDIGEST.createType(TYPE_REGISTRY, ImmutableList.of(TypeParameter.of(BIGINT))); + @Test + public void testNullQuantileDigestGetValueAtQuantile() + { + functionAssertions.assertFunction("value_at_quantile(CAST(NULL AS qdigest(bigint)), 0.3)", BIGINT, null); + } + + @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = "Quantile should be within bounds \\[0, 1\\], was: \\d+\\.\\d+") + public void testGetValueAtQuantileOverOne() + { + QuantileDigest qdigest = new QuantileDigest(1); + functionAssertions.assertFunction(format("value_at_quantile(CAST(X'%s' AS qdigest(bigint)), 1.5)", toHexString(qdigest)), + BIGINT, + null); + } + + @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = "Quantile should be within bounds \\[0, 1\\], was: -\\d+\\.\\d+") + public void testGetValueAtQuantileBelowZero() + { + QuantileDigest qdigest = new QuantileDigest(1); + functionAssertions.assertFunction(format("value_at_quantile(CAST(X'%s' AS qdigest(bigint)), -0.2)", toHexString(qdigest)), + BIGINT, + null); + } + + @Test + public void testValueAtQuantileBigint() + { + QuantileDigest qdigest = new QuantileDigest(1); + addAll(qdigest, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + + functionAssertions.assertFunction(format("value_at_quantile(CAST(X'%s' AS qdigest(bigint)), 0.5)", toHexString(qdigest)), + BIGINT, + 5L); + } + @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = "Scale factor should be positive\\.") public void testScaleNegative() { From 1361d6df2052191e7997f2104f59f11c4e59456d Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Fri, 3 Apr 2020 15:06:00 -0700 Subject: [PATCH 037/129] Fix named query output does not match column list When the named query is a TABLE, as in WITH t(x) AS (TABLE qualifiedName) the scope of TABLE will include invisible fields. In RelationPlanner::addCoercion, the function only adds coercion for visible fields. However, when it does `verify`, it verifies against all field count of the sub query, causing VerifyException when table `qualifiedName` has invisible columns. Change the code to only look at visible fields instead. Also in StatementAnalyzer::visitTable, the named query should only map column names to visible fields. --- .../presto/sql/analyzer/StatementAnalyzer.java | 7 +++---- .../presto/sql/planner/RelationPlanner.java | 14 +++++++++----- .../facebook/presto/tests/AbstractTestQueries.java | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java index 2c4936af3da2d..4823942a0dcbd 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java @@ -140,6 +140,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Optional; @@ -892,9 +893,9 @@ protected Scope visitTable(Table table, Optional scope) // if columns are explicitly aliased -> WITH cte(alias1, alias2 ...) ImmutableList.Builder fieldBuilder = ImmutableList.builder(); - int field = 0; + Iterator visibleFieldsIterator = queryDescriptor.getVisibleFields().iterator(); for (Identifier columnName : columnNames.get()) { - Field inputField = queryDescriptor.getFieldByIndex(field); + Field inputField = visibleFieldsIterator.next(); fieldBuilder.add(Field.newQualified( QualifiedName.of(name), Optional.of(columnName.getValue()), @@ -903,8 +904,6 @@ protected Scope visitTable(Table table, Optional scope) inputField.getOriginTable(), inputField.getOriginColumnName(), inputField.isAliased())); - - field++; } fields = fieldBuilder.build(); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java index bc15541c242df..7d3a00d3e864b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java @@ -725,14 +725,18 @@ private RelationPlan processAndCoerceIfNecessary(Relation node, Void context) private RelationPlan addCoercions(RelationPlan plan, Type[] targetColumnTypes) { - List oldVariables = plan.getFieldMappings(); - RelationType oldDescriptor = plan.getDescriptor().withOnlyVisibleFields(); - verify(targetColumnTypes.length == oldVariables.size()); + RelationType oldRelation = plan.getDescriptor(); + List oldVisibleVariables = oldRelation.getVisibleFields().stream() + .map(oldRelation::indexOf) + .map(plan.getFieldMappings()::get) + .collect(toImmutableList()); + RelationType oldRelationWithVisibleFields = plan.getDescriptor().withOnlyVisibleFields(); + verify(targetColumnTypes.length == oldVisibleVariables.size()); ImmutableList.Builder newVariables = new ImmutableList.Builder<>(); Field[] newFields = new Field[targetColumnTypes.length]; Assignments.Builder assignments = Assignments.builder(); for (int i = 0; i < targetColumnTypes.length; i++) { - VariableReferenceExpression inputVariable = oldVariables.get(i); + VariableReferenceExpression inputVariable = oldVisibleVariables.get(i); Type outputType = targetColumnTypes[i]; if (!outputType.equals(inputVariable.getType())) { Expression cast = new Cast(new SymbolReference(inputVariable.getName()), outputType.getTypeSignature().toString()); @@ -746,7 +750,7 @@ private RelationPlan addCoercions(RelationPlan plan, Type[] targetColumnTypes) assignments.put(outputVariable, castToRowExpression(symbolReference)); newVariables.add(outputVariable); } - Field oldField = oldDescriptor.getFieldByIndex(i); + Field oldField = oldRelationWithVisibleFields.getFieldByIndex(i); newFields[i] = new Field( oldField.getRelationAlias(), oldField.getName(), diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java index ed74f7a0dc9a2..d35e1f33d5213 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java @@ -4224,6 +4224,7 @@ public void testWith() "WITH a AS (SELECT * FROM orders) " + "SELECT * FROM a", "SELECT * FROM orders"); + assertQuerySucceeds("WITH t(x, y, z) AS (TABLE region) SELECT * FROM t"); } @Test From 555df6a06ceda5a8bc43928486bd12820eb71b72 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Tue, 14 Apr 2020 11:51:14 -0700 Subject: [PATCH 038/129] Change PageProjection to produce List --- .../benchmark/AbstractOperatorBenchmark.java | 8 +-- .../presto/benchmark/HandTpchQuery6.java | 3 +- .../index/DynamicTupleFilterFactory.java | 5 +- .../project/ConstantPageProjection.java | 6 +- .../DictionaryAwarePageProjection.java | 40 ++++++----- .../project/GeneratedPageProjection.java | 5 +- .../operator/project/InputPageProjection.java | 7 +- .../operator/project/PageProcessor.java | 59 ++++++++++------ .../operator/project/PageProjection.java | 4 +- .../project/PageProjectionWithOutputs.java | 67 +++++++++++++++++++ .../presto/sql/gen/ExpressionCompiler.java | 7 +- .../presto/sql/gen/PageFunctionCompiler.java | 10 ++- .../TestScanFilterAndProjectOperator.java | 3 +- .../TestDictionaryAwarePageProjection.java | 31 ++++----- .../operator/project/TestPageProcessor.java | 49 ++++++++------ .../operator/scalar/FunctionAssertions.java | 6 +- .../sql/gen/TestPageFunctionCompiler.java | 7 +- 17 files changed, 217 insertions(+), 100 deletions(-) create mode 100644 presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java index 010821cb8c64f..c18a558cb2e32 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java @@ -35,7 +35,7 @@ import com.facebook.presto.operator.TaskStats; import com.facebook.presto.operator.project.InputPageProjection; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.security.AllowAllAccessControl; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; @@ -210,12 +210,12 @@ protected final OperatorFactory createHashProjectOperator(int operatorId, PlanNo { ImmutableList.Builder variables = ImmutableList.builder(); ImmutableMap.Builder variableToInputMapping = ImmutableMap.builder(); - ImmutableList.Builder projections = ImmutableList.builder(); + ImmutableList.Builder projections = ImmutableList.builder(); for (int channel = 0; channel < types.size(); channel++) { VariableReferenceExpression variable = new VariableReferenceExpression("h" + channel, types.get(channel)); variables.add(variable); variableToInputMapping.put(variable, channel); - projections.add(new InputPageProjection(channel, types.get(channel))); + projections.add(new PageProjectionWithOutputs(new InputPageProjection(channel, types.get(channel)), new int[] {channel})); } Optional hashExpression = HashGenerationOptimizer.getHashExpression(localQueryRunner.getMetadata().getFunctionManager(), variables.build()); @@ -223,7 +223,7 @@ protected final OperatorFactory createHashProjectOperator(int operatorId, PlanNo RowExpression translatedHashExpression = translate(hashExpression.get(), variableToInputMapping.build()); PageFunctionCompiler functionCompiler = new PageFunctionCompiler(localQueryRunner.getMetadata(), 0); - projections.add(functionCompiler.compileProjection(session.getSqlFunctionProperties(), translatedHashExpression, Optional.empty()).get()); + projections.add(new PageProjectionWithOutputs(functionCompiler.compileProjection(session.getSqlFunctionProperties(), translatedHashExpression, Optional.empty()).get(), new int[] {types.size()})); return new FilterAndProjectOperator.FilterAndProjectOperatorFactory( operatorId, diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java index bb7397cd98a4e..1f119146fad00 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java @@ -22,6 +22,7 @@ import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.block.Block; @@ -76,7 +77,7 @@ protected List createOperatorFactories() FilterAndProjectOperator.FilterAndProjectOperatorFactory tpchQuery6Operator = new FilterAndProjectOperator.FilterAndProjectOperatorFactory( 1, new PlanNodeId("test"), - () -> new PageProcessor(Optional.of(new TpchQuery6Filter()), ImmutableList.of(projection.get())), + () -> new PageProcessor(Optional.of(new TpchQuery6Filter()), ImmutableList.of(new PageProjectionWithOutputs(projection.get(), new int[] {0}))), ImmutableList.of(DOUBLE), new DataSize(0, BYTE), 0); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java index 09c839e88f7d2..4214686403980 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java @@ -16,6 +16,7 @@ import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.SqlFunctionProperties; @@ -98,8 +99,8 @@ public Supplier createPageProcessor(Page filterTuple, OptionalInt TuplePageFilter filter = new TuplePageFilter(filterTuple, filterTypes, outputFilterChannels); return () -> new PageProcessor( Optional.of(filter), - outputProjections.stream() - .map(Supplier::get) + IntStream.range(0, outputProjections.size()) + .mapToObj(index -> new PageProjectionWithOutputs(outputProjections.get(index).get(), new int[] {index})) .collect(toImmutableList()), initialBatchSize); } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java index 9169607deddf3..b584d7e5029c3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java @@ -24,6 +24,8 @@ import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; +import java.util.List; + import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; public class ConstantPageProjection @@ -61,8 +63,8 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { - return new CompletedWork<>(new RunLengthEncodedBlock(value, selectedPositions.size())); + return new CompletedWork<>(ImmutableList.of(new RunLengthEncodedBlock(value, selectedPositions.size()))); } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java index 13340fe2803c4..3efae8cbea511 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java @@ -26,11 +26,13 @@ import javax.annotation.Nullable; +import java.util.List; import java.util.Optional; import java.util.function.Function; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; +import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; public class DictionaryAwarePageProjection @@ -40,7 +42,7 @@ public class DictionaryAwarePageProjection private final Function sourceIdFunction; private Block lastInputDictionary; - private Optional lastOutputDictionary; + private Optional> lastOutputDictionary; private long lastDictionaryUsageCount; public DictionaryAwarePageProjection(PageProjection projection, Function sourceIdFunction) @@ -70,24 +72,24 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { return new DictionaryAwarePageProjectionWork(properties, yieldSignal, page, selectedPositions); } private class DictionaryAwarePageProjectionWork - implements Work + implements Work> { private final SqlFunctionProperties properties; private final DriverYieldSignal yieldSignal; private final Block block; private final SelectedPositions selectedPositions; - private Block result; + private List results; // if the block is RLE or dictionary block, we may use dictionary processing - private Work dictionaryProcessingProjectionWork; + private Work> dictionaryProcessingProjectionWork; // always prepare to fall back to a general block in case the dictionary does not apply or fails - private Work fallbackProcessingProjectionWork; + private Work> fallbackProcessingProjectionWork; public DictionaryAwarePageProjectionWork(@Nullable SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { @@ -114,16 +116,16 @@ else if (block instanceof DictionaryBlock) { @Override public boolean process() { - checkState(result == null, "result has been generated"); + checkState(results == null, "result has been generated"); if (fallbackProcessingProjectionWork != null) { if (fallbackProcessingProjectionWork.process()) { - result = fallbackProcessingProjectionWork.getResult(); + results = fallbackProcessingProjectionWork.getResult(); return true; } return false; } - Optional dictionaryOutput = Optional.empty(); + Optional> dictionaryOutput = Optional.empty(); if (dictionaryProcessingProjectionWork != null) { try { if (!dictionaryProcessingProjectionWork.process()) { @@ -153,7 +155,9 @@ public boolean process() if (block instanceof RunLengthEncodedBlock) { // single value block is always considered effective, but the processing could have thrown // in that case we fallback and process again so the correct error message sent - result = new RunLengthEncodedBlock(dictionaryOutput.get(), selectedPositions.size()); + results = dictionaryOutput.get().stream() + .map(block -> new RunLengthEncodedBlock(block, selectedPositions.size())) + .collect(toImmutableList()); return true; } @@ -161,7 +165,9 @@ public boolean process() DictionaryBlock dictionaryBlock = (DictionaryBlock) block; // if dictionary was processed, produce a dictionary block; otherwise do normal processing int[] outputIds = filterDictionaryIds(dictionaryBlock, selectedPositions); - result = new DictionaryBlock(selectedPositions.size(), dictionaryOutput.get(), outputIds, false, sourceIdFunction.apply(dictionaryBlock)); + results = dictionaryOutput.get().stream() + .map(block -> new DictionaryBlock(selectedPositions.size(), block, outputIds, false, sourceIdFunction.apply(dictionaryBlock))) + .collect(toImmutableList()); return true; } @@ -173,20 +179,20 @@ public boolean process() verify(fallbackProcessingProjectionWork == null); fallbackProcessingProjectionWork = projection.project(properties, yieldSignal, new Page(block), selectedPositions); if (fallbackProcessingProjectionWork.process()) { - result = fallbackProcessingProjectionWork.getResult(); + results = fallbackProcessingProjectionWork.getResult(); return true; } return false; } @Override - public Block getResult() + public List getResult() { - checkState(result != null, "result has not been generated"); - return result; + checkState(results != null, "result has not been generated"); + return results; } - private Work createDictionaryBlockProjection(Optional dictionary) + private Work> createDictionaryBlockProjection(Optional dictionary) { if (!dictionary.isPresent()) { lastOutputDictionary = Optional.empty(); @@ -195,7 +201,7 @@ private Work createDictionaryBlockProjection(Optional dictionary) if (lastInputDictionary == dictionary.get()) { // we must have fallen back last time if lastOutputDictionary is null - return lastOutputDictionary.map(CompletedWork::new).orElse(null); + return lastOutputDictionary.>>map(CompletedWork::new).orElse(null); } // Process dictionary if: diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java index 0e92bbccaca67..e46230bc12772 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java @@ -23,6 +23,7 @@ import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; +import java.util.List; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; @@ -65,11 +66,11 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { blockBuilder = blockBuilder.newBlockBuilderLike(null); try { - return (Work) pageProjectionWorkFactory.invoke(blockBuilder, properties, page, selectedPositions); + return (Work>) pageProjectionWorkFactory.invoke(blockBuilder, properties, page, selectedPositions); } catch (Throwable e) { throw new RuntimeException(e); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java index bde9480a9971b..0fba206e7a6f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java @@ -20,6 +20,9 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.Type; +import com.google.common.collect.ImmutableList; + +import java.util.List; import static java.util.Objects.requireNonNull; @@ -54,7 +57,7 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { Block block = requireNonNull(page, "page is null").getBlock(0); requireNonNull(selectedPositions, "selectedPositions is null"); @@ -69,6 +72,6 @@ else if (selectedPositions.getOffset() == 0 && selectedPositions.size() == page. else { result = block.getRegion(selectedPositions.getOffset(), selectedPositions.size()); } - return new CompletedWork<>(result); + return new CompletedWork<>(ImmutableList.of(result)); } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java index 2f11c9506062c..05a4c34807e4c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java @@ -31,6 +31,7 @@ import javax.annotation.concurrent.NotThreadSafe; +import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -38,6 +39,7 @@ import java.util.Optional; import java.util.OptionalInt; import java.util.function.Function; +import java.util.stream.IntStream; import static com.facebook.presto.operator.WorkProcessor.ProcessState.finished; import static com.facebook.presto.operator.WorkProcessor.ProcessState.ofResult; @@ -47,7 +49,9 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; +import static java.lang.String.format; import static java.util.Objects.requireNonNull; +import static java.util.function.Function.identity; @NotThreadSafe public class PageProcessor @@ -59,19 +63,25 @@ public class PageProcessor private final ExpressionProfiler expressionProfiler; private final DictionarySourceIdFunction dictionarySourceIdFunction = new DictionarySourceIdFunction(); private final Optional filter; - private final List projections; + private final List projections; + private final int outputCount; private int projectBatchSize; @VisibleForTesting - public PageProcessor(Optional filter, List projections, OptionalInt initialBatchSize) + public PageProcessor(Optional filter, List projections, OptionalInt initialBatchSize) { this(filter, projections, initialBatchSize, new ExpressionProfiler()); } @VisibleForTesting - public PageProcessor(Optional filter, List projections, OptionalInt initialBatchSize, ExpressionProfiler expressionProfiler) + public PageProcessor(Optional filter, List projections, OptionalInt initialBatchSize, ExpressionProfiler expressionProfiler) { + List outputChannels = projections.stream().map(PageProjectionWithOutputs::getOutputChannels).map(Arrays::stream).map(IntStream::boxed).flatMap(identity()).distinct().collect(toImmutableList()); + int outputCount = projections.stream().map(PageProjectionWithOutputs::getOutputCount).reduce(Integer::sum).orElse(0); + verify(outputChannels.size() == outputCount, format("outputChannels size: %d (%s), outputCount %d, projections: %s", outputChannels.size(), outputChannels, outputCount, projections)); + verify(outputCount == 0 || outputChannels.stream().max(Integer::compareTo).orElse(0) == outputChannels.size() - 1, format("outputCount: %d, outputChannels: %s", outputCount, outputChannels)); + this.filter = requireNonNull(filter, "filter is null") .map(pageFilter -> { if (pageFilter.getInputChannels().size() == 1 && pageFilter.isDeterministic()) { @@ -79,20 +89,22 @@ public PageProcessor(Optional filter, List } return pageFilter; }); + this.outputCount = outputCount; this.projections = requireNonNull(projections, "projections is null").stream() - .map(projection -> { + .map(projectionWithOutputs -> { + PageProjection projection = projectionWithOutputs.getPageProjection(); if (projection.getInputChannels().size() == 1 && projection.isDeterministic() && !(projection instanceof InputPageProjection)) { - return new DictionaryAwarePageProjection(projection, dictionarySourceIdFunction); + return new PageProjectionWithOutputs(new DictionaryAwarePageProjection(projection, dictionarySourceIdFunction), projectionWithOutputs.getOutputChannels()); } - return projection; + return projectionWithOutputs; }) .collect(toImmutableList()); this.projectBatchSize = initialBatchSize.orElse(1); this.expressionProfiler = requireNonNull(expressionProfiler, "expressionProfiler is null"); } - public PageProcessor(Optional filter, List projections) + public PageProcessor(Optional filter, List projections) { this(filter, projections, OptionalInt.of(1)); } @@ -146,7 +158,7 @@ private class ProjectSelectedPositions // remember if we need to re-use the same batch size if we yield last time private boolean lastComputeYielded; private int lastComputeBatchSize; - private Work pageProjectWork; + private Work> pageProjectWork; private ProjectSelectedPositions(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, LocalMemoryContext memoryContext, Page page, SelectedPositions selectedPositions) { @@ -157,7 +169,7 @@ private ProjectSelectedPositions(SqlFunctionProperties properties, DriverYieldSi this.page = page; this.memoryContext = memoryContext; this.selectedPositions = selectedPositions; - this.previouslyComputedResults = new Block[projections.size()]; + this.previouslyComputedResults = new Block[outputCount]; } @Override @@ -269,11 +281,11 @@ private void updateRetainedSize() private ProcessBatchResult processBatch(int batchSize) { - Block[] blocks = new Block[projections.size()]; + Block[] blocks = new Block[outputCount]; int pageSize = 0; SelectedPositions positionsBatch = selectedPositions.subRange(0, batchSize); - for (int i = 0; i < projections.size(); i++) { + for (PageProjectionWithOutputs projection : projections) { if (yieldSignal.isSet()) { return ProcessBatchResult.processBatchYield(); } @@ -283,32 +295,39 @@ private ProcessBatchResult processBatch(int batchSize) } // if possible, use previouslyComputedResults produced in prior optimistic failure attempt - PageProjection projection = projections.get(i); - if (previouslyComputedResults[i] != null && previouslyComputedResults[i].getPositionCount() >= batchSize) { - blocks[i] = previouslyComputedResults[i].getRegion(0, batchSize); + int[] outputChannels = projection.getOutputChannels(); + // The progress on all output channels of a projection should be the same, so we just use the first one. + if (previouslyComputedResults[outputChannels[0]] != null && previouslyComputedResults[outputChannels[0]].getPositionCount() >= batchSize) { + for (int channel : outputChannels) { + blocks[channel] = previouslyComputedResults[channel].getRegion(0, batchSize); + pageSize += blocks[channel].getSizeInBytes(); + } } else { if (pageProjectWork == null) { expressionProfiler.start(); - pageProjectWork = projection.project(properties, yieldSignal, projection.getInputChannels().getInputChannels(page), positionsBatch); + pageProjectWork = projection.project(properties, yieldSignal, projection.getPageProjection().getInputChannels().getInputChannels(page), positionsBatch); expressionProfiler.stop(positionsBatch.size()); } if (!pageProjectWork.process()) { return ProcessBatchResult.processBatchYield(); } - previouslyComputedResults[i] = pageProjectWork.getResult(); + List projectionOutputs = pageProjectWork.getResult(); + for (int j = 0; j < outputChannels.length; j++) { + int channel = outputChannels[j]; + previouslyComputedResults[channel] = projectionOutputs.get(j); + blocks[channel] = previouslyComputedResults[channel]; + pageSize += blocks[channel].getSizeInBytes(); + } pageProjectWork = null; - blocks[i] = previouslyComputedResults[i]; } - - pageSize += blocks[i].getSizeInBytes(); } return ProcessBatchResult.processBatchSuccess(new Page(positionsBatch.size(), blocks)); } } @VisibleForTesting - public List getProjections() + public List getProjections() { return projections; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java index 1b7cde4d2c7fb..ba7feef55f17b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java @@ -20,6 +20,8 @@ import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.Type; +import java.util.List; + public interface PageProjection { Type getType(); @@ -28,5 +30,5 @@ public interface PageProjection InputChannels getInputChannels(); - Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions); + Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions); } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java new file mode 100644 index 0000000000000..ed0623242cc03 --- /dev/null +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java @@ -0,0 +1,67 @@ +/* + * 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 com.facebook.presto.operator.project; + +import com.facebook.presto.operator.DriverYieldSignal; +import com.facebook.presto.operator.Work; +import com.facebook.presto.spi.Page; +import com.facebook.presto.spi.block.Block; +import com.facebook.presto.spi.function.SqlFunctionProperties; + +import java.util.Arrays; +import java.util.List; + +import static com.google.common.base.MoreObjects.toStringHelper; +import static java.util.Objects.requireNonNull; + +public class PageProjectionWithOutputs +{ + private final PageProjection pageProjection; + private final int[] outputChannels; + + public PageProjectionWithOutputs(PageProjection pageProjection, int[] outputChannels) + { + this.pageProjection = requireNonNull(pageProjection, "pageProjection is null"); + this.outputChannels = Arrays.copyOf(requireNonNull(outputChannels, "outputChannels is null"), outputChannels.length); + } + + public PageProjection getPageProjection() + { + return pageProjection; + } + + public int getOutputCount() + { + return outputChannels.length; + } + + int[] getOutputChannels() + { + return outputChannels; + } + + Work> project(SqlFunctionProperties sqlFunctionProperties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + { + return pageProjection.project(sqlFunctionProperties, yieldSignal, page, selectedPositions); + } + + @Override + public String toString() + { + return toStringHelper(this) + .add("pageProjection", pageProjection) + .add("outputChannels", outputChannels) + .toString(); + } +} diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java index b524d298bd9fb..0774a80d885c0 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java @@ -20,6 +20,7 @@ import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.RowExpression; @@ -38,6 +39,7 @@ import java.util.Optional; import java.util.OptionalInt; import java.util.function.Supplier; +import java.util.stream.IntStream; import static com.facebook.presto.bytecode.Access.FINAL; import static com.facebook.presto.bytecode.Access.PUBLIC; @@ -107,11 +109,10 @@ private Supplier compilePageProcessor( List> pageProjectionSuppliers = projections.stream() .map(projection -> pageFunctionCompiler.compileProjection(sqlFunctionProperties, projection, classNameSuffix)) .collect(toImmutableList()); - return () -> { Optional filterFunction = filterFunctionSupplier.map(Supplier::get); - List pageProjections = pageProjectionSuppliers.stream() - .map(Supplier::get) + List pageProjections = IntStream.range(0, pageProjectionSuppliers.size()) + .mapToObj(index -> new PageProjectionWithOutputs(pageProjectionSuppliers.get(index).get(), new int[] {index})) .collect(toImmutableList()); return new PageProcessor(filterFunction, pageProjections, initialBatchSize); }; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index a6dccae239a13..38ae7ce029df2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -220,7 +220,7 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc FieldDefinition pageField = classDefinition.declareField(a(PRIVATE), "page", Page.class); FieldDefinition selectedPositionsField = classDefinition.declareField(a(PRIVATE), "selectedPositions", SelectedPositions.class); FieldDefinition nextIndexOrPositionField = classDefinition.declareField(a(PRIVATE), "nextIndexOrPosition", int.class); - FieldDefinition resultField = classDefinition.declareField(a(PRIVATE), "result", Block.class); + FieldDefinition resultField = classDefinition.declareField(a(PRIVATE), "result", List.class); CachedInstanceBinder cachedInstanceBinder = new CachedInstanceBinder(classDefinition, callSiteBinder); @@ -281,6 +281,7 @@ private static MethodDefinition generateProcessMethod( Variable to = scope.declareVariable("to", body, add(thisVariable.getField(selectedPositions).invoke("getOffset", int.class), thisVariable.getField(selectedPositions).invoke("size", int.class))); Variable positions = scope.declareVariable(int[].class, "positions"); Variable index = scope.declareVariable(int.class, "index"); + Variable blockList = scope.declareVariable(List.class, "blockList"); IfStatement ifStatement = new IfStatement() .condition(thisVariable.getField(selectedPositions).invoke("isList", boolean.class)); @@ -302,8 +303,11 @@ private static MethodDefinition generateProcessMethod( .body(new BytecodeBlock() .append(thisVariable.invoke("evaluate", void.class, thisVariable.getField(properties), thisVariable.getField(page), index)))); - body.comment("result = this.blockBuilder.build(); return true;") - .append(thisVariable.setField(result, thisVariable.getField(blockBuilder).invoke("build", Block.class))) + body.comment("result = ImmutableList.of(this.blockBuilder.build(); return true;") + .append(thisVariable.getField(blockBuilder).invoke("build", Block.class)) + .invokeStatic(ImmutableList.class, "of", ImmutableList.class, Object.class) + .putVariable(blockList) + .append(thisVariable.setField(result, blockList)) .push(true) .retBoolean(); diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java index d76f466b37b42..24282ad01a99a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java @@ -23,6 +23,7 @@ import com.facebook.presto.operator.index.PageRecordSet; import com.facebook.presto.operator.project.CursorProcessor; import com.facebook.presto.operator.project.PageProcessor; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.TestPageProcessor.LazyPagePageProjection; import com.facebook.presto.operator.project.TestPageProcessor.SelectAllFilter; import com.facebook.presto.operator.scalar.AbstractTestFunctions; @@ -201,7 +202,7 @@ public void testPageSourceLazyLoad() List projections = ImmutableList.of(field(0, VARCHAR)); Supplier cursorProcessor = expressionCompiler.compileCursorProcessor(driverContext.getSession().getSqlFunctionProperties(), Optional.empty(), projections, "key"); - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new LazyPagePageProjection())); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new PageProjectionWithOutputs(new LazyPagePageProjection(), new int[] {0}))); ScanFilterAndProjectOperator.ScanFilterAndProjectOperatorFactory factory = new ScanFilterAndProjectOperator.ScanFilterAndProjectOperatorFactory( 0, diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java index be1fa5124d320..c0f49f7240fa5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java @@ -29,6 +29,7 @@ import org.testng.annotations.Test; import java.util.Arrays; +import java.util.List; import java.util.concurrent.ScheduledExecutorService; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; @@ -182,7 +183,7 @@ private static DictionaryBlock createDictionaryBlockWithUnusedEntries(int dictio return new DictionaryBlock(dictionary, ids); } - private static Block projectWithYield(Work work, DriverYieldSignal yieldSignal) + private static List projectWithYield(Work> work, DriverYieldSignal yieldSignal) { int yieldCount = 0; while (true) { @@ -219,8 +220,8 @@ private static void testProjectFails(Block block, Class expecte private static void testProjectRange(Block block, Class expectedResultType, DictionaryAwarePageProjection projection, boolean forceYield) { DriverYieldSignal yieldSignal = new DriverYieldSignal(); - Work work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsRange(5, 10)); - Block result; + Work> work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsRange(5, 10)); + List result; if (forceYield) { result = projectWithYield(work, yieldSignal); } @@ -230,17 +231,17 @@ private static void testProjectRange(Block block, Class expecte } assertBlockEquals( BIGINT, - result, + result.get(0), block.getRegion(5, 10)); - assertInstanceOf(result, expectedResultType); + assertInstanceOf(result.get(0), expectedResultType); } private static void testProjectList(Block block, Class expectedResultType, DictionaryAwarePageProjection projection, boolean forceYield) { DriverYieldSignal yieldSignal = new DriverYieldSignal(); int[] positions = {0, 2, 4, 6, 8, 10}; - Work work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsList(positions, 0, positions.length)); - Block result; + Work> work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsList(positions, 0, positions.length)); + List result; if (forceYield) { result = projectWithYield(work, yieldSignal); } @@ -250,21 +251,21 @@ private static void testProjectList(Block block, Class expected } assertBlockEquals( BIGINT, - result, + result.get(0), block.copyPositions(positions, 0, positions.length)); - assertInstanceOf(result, expectedResultType); + assertInstanceOf(result.get(0), expectedResultType); } private static void testProjectFastReturnIgnoreYield(Block block, DictionaryAwarePageProjection projection) { DriverYieldSignal yieldSignal = new DriverYieldSignal(); - Work work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsRange(5, 10)); + Work> work = projection.project(null, yieldSignal, new Page(block), SelectedPositions.positionsRange(5, 10)); yieldSignal.setWithDelay(1, executor); yieldSignal.forceYieldForTesting(); // yield signal is ignored given the block has already been loaded assertTrue(work.process()); - Block result = work.getResult(); + Block result = work.getResult().get(0); yieldSignal.reset(); assertBlockEquals( @@ -308,13 +309,13 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { return new TestPageProjectionWork(yieldSignal, page, selectedPositions); } private class TestPageProjectionWork - implements Work + implements Work> { private final DriverYieldSignal yieldSignal; private final Block block; @@ -363,10 +364,10 @@ public boolean process() } @Override - public Block getResult() + public List getResult() { assertNotNull(result); - return result; + return ImmutableList.of(result); } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java index 8173df1f706f1..5b4b483bf260d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java @@ -44,6 +44,7 @@ import java.util.OptionalInt; import java.util.concurrent.ScheduledExecutorService; import java.util.function.Supplier; +import java.util.stream.IntStream; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; @@ -65,6 +66,7 @@ import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; +import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.join; import static java.util.Collections.nCopies; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; @@ -120,7 +122,7 @@ public void testPartialFilter() { PageProcessor pageProcessor = new PageProcessor( Optional.of(new TestingPageFilter(positionsRange(25, 50))), - ImmutableList.of(new InputPageProjection(0, BIGINT)), + ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0)), OptionalInt.of(MAX_BATCH_SIZE)); Page inputPage = new Page(createLongSequenceBlock(0, 100)); @@ -135,7 +137,7 @@ public void testPartialFilter() @Test public void testSelectAllFilter() { - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new InputPageProjection(0, BIGINT)), OptionalInt.of(MAX_BATCH_SIZE)); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0)), OptionalInt.of(MAX_BATCH_SIZE)); Page inputPage = new Page(createLongSequenceBlock(0, 100)); @@ -149,7 +151,7 @@ public void testSelectAllFilter() @Test public void testSelectNoneFilter() { - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectNoneFilter()), ImmutableList.of(new InputPageProjection(0, BIGINT))); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectNoneFilter()), ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0))); Page inputPage = new Page(createLongSequenceBlock(0, 100)); @@ -164,7 +166,7 @@ public void testSelectNoneFilter() @Test public void testProjectEmptyPage() { - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new InputPageProjection(0, BIGINT))); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0))); Page inputPage = new Page(createLongSequenceBlock(0, 0)); @@ -180,7 +182,7 @@ public void testProjectEmptyPage() @Test public void testSelectNoneFilterLazyLoad() { - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectNoneFilter()), ImmutableList.of(new InputPageProjection(1, BIGINT))); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectNoneFilter()), ImmutableList.of(createInputPageProjectionWithOutputs(1, BIGINT, 0))); // if channel 1 is loaded, test will fail Page inputPage = new Page(createLongSequenceBlock(0, 100), new LazyBlock(100, lazyBlock -> { @@ -197,7 +199,7 @@ public void testSelectNoneFilterLazyLoad() @Test public void testProjectLazyLoad() { - PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new LazyPagePageProjection()), OptionalInt.of(MAX_BATCH_SIZE)); + PageProcessor pageProcessor = new PageProcessor(Optional.of(new SelectAllFilter()), ImmutableList.of(new PageProjectionWithOutputs(new LazyPagePageProjection(), new int[] {0})), OptionalInt.of(MAX_BATCH_SIZE)); // if channel 1 is loaded, test will fail Page inputPage = new Page(createLongSequenceBlock(0, 100), new LazyBlock(100, lazyBlock -> { @@ -215,7 +217,7 @@ public void testProjectLazyLoad() @Test public void testBatchedOutput() { - PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(new InputPageProjection(0, BIGINT)), OptionalInt.of(MAX_BATCH_SIZE)); + PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0)), OptionalInt.of(MAX_BATCH_SIZE)); Page inputPage = new Page(createLongSequenceBlock(0, (int) (MAX_BATCH_SIZE * 2.5))); @@ -234,7 +236,7 @@ public void testBatchedOutput() @Test public void testAdaptiveBatchSize() { - PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(new InputPageProjection(0, VARCHAR)), OptionalInt.of(MAX_BATCH_SIZE)); + PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(createInputPageProjectionWithOutputs(0, VARCHAR, 0)), OptionalInt.of(MAX_BATCH_SIZE)); // process large page which will reduce batch size Slice[] slices = new Slice[(int) (MAX_BATCH_SIZE * 2.5)]; @@ -276,7 +278,7 @@ public void testOptimisticProcessing() { InvocationCountPageProjection firstProjection = new InvocationCountPageProjection(new InputPageProjection(0, VARCHAR)); InvocationCountPageProjection secondProjection = new InvocationCountPageProjection(new InputPageProjection(0, VARCHAR)); - PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(firstProjection, secondProjection), OptionalInt.of(MAX_BATCH_SIZE)); + PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(new PageProjectionWithOutputs(firstProjection, new int[] {0}), new PageProjectionWithOutputs(secondProjection, new int[] {1})), OptionalInt.of(MAX_BATCH_SIZE)); // process large page which will reduce batch size Slice[] slices = new Slice[(int) (MAX_BATCH_SIZE * 2.5)]; @@ -317,7 +319,7 @@ public void testRetainedSize() { PageProcessor pageProcessor = new PageProcessor( Optional.of(new SelectAllFilter()), - ImmutableList.of(new InputPageProjection(0, VARCHAR), new InputPageProjection(1, VARCHAR)), + ImmutableList.of(createInputPageProjectionWithOutputs(0, VARCHAR, 0), createInputPageProjectionWithOutputs(1, VARCHAR, 1)), OptionalInt.of(MAX_BATCH_SIZE)); // create 2 columns X 800 rows of strings with each string's size = 10KB @@ -348,7 +350,7 @@ public void testYieldProjection() DriverYieldSignal yieldSignal = new DriverYieldSignal(); PageProcessor pageProcessor = new PageProcessor( Optional.empty(), - Collections.nCopies(columns, new YieldPageProjection(new InputPageProjection(0, VARCHAR))), + IntStream.range(0, 20).mapToObj(i -> new PageProjectionWithOutputs(new YieldPageProjection(new InputPageProjection(0, VARCHAR)), new int[] {i})).collect(toImmutableList()), OptionalInt.of(MAX_BATCH_SIZE)); Slice[] slices = new Slice[rows]; @@ -400,7 +402,7 @@ public void testExpressionProfiler() ExpressionProfiler profiler = new ExpressionProfiler(testingTicker, SPLIT_RUN_QUANTA); for (int i = 0; i < 100; i++) { profiler.start(); - Work work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), page, SelectedPositions.positionsRange(0, page.getPositionCount())); + Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), page, SelectedPositions.positionsRange(0, page.getPositionCount())); if (i < 10) { // increment the ticker with a large value to mark the expression as expensive testingTicker.increment(10, SECONDS); @@ -426,7 +428,7 @@ public void testIncreasingBatchSize() ExpressionProfiler profiler = new ExpressionProfiler(testingTicker, SPLIT_RUN_QUANTA); PageProcessor pageProcessor = new PageProcessor( Optional.empty(), - ImmutableList.of(new InputPageProjection(0, BIGINT)), + ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0)), OptionalInt.of(1), profiler); @@ -460,7 +462,7 @@ public void testDecreasingBatchSize() ExpressionProfiler profiler = new ExpressionProfiler(testingTicker, new Duration(0, MILLISECONDS)); PageProcessor pageProcessor = new PageProcessor( Optional.empty(), - ImmutableList.of(new InputPageProjection(0, BIGINT)), + ImmutableList.of(createInputPageProjectionWithOutputs(0, BIGINT, 0)), OptionalInt.of(512), profiler); @@ -484,6 +486,11 @@ public void testDecreasingBatchSize() } } + private PageProjectionWithOutputs createInputPageProjectionWithOutputs(int inputChannel, Type type, int outputChannel) + { + return new PageProjectionWithOutputs(new InputPageProjection(inputChannel, type), new int[] {outputChannel}); + } + private Iterator> processAndAssertRetainedPageSize(PageProcessor pageProcessor, Page inputPage) { return processAndAssertRetainedPageSize(pageProcessor, new DriverYieldSignal(), inputPage); @@ -535,7 +542,7 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { setInvocationCount(getInvocationCount() + 1); return delegate.project(properties, yieldSignal, page, selectedPositions); @@ -561,16 +568,16 @@ public YieldPageProjection(PageProjection delegate) } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { return new YieldPageProjectionWork(properties, yieldSignal, page, selectedPositions); } private class YieldPageProjectionWork - implements Work + implements Work> { private final DriverYieldSignal yieldSignal; - private final Work work; + private final Work> work; public YieldPageProjectionWork(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { @@ -588,7 +595,7 @@ public boolean process() } @Override - public Block getResult() + public List getResult() { return work.getResult(); } @@ -617,9 +624,9 @@ public InputChannels getInputChannels() } @Override - public Work project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) + public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { - return new CompletedWork<>(page.getBlock(0).getLoadedBlock()); + return new CompletedWork<>(ImmutableList.of(page.getBlock(0).getLoadedBlock())); } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java index dbd2a54e3c6e3..2b13c1674bcab 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java @@ -29,7 +29,7 @@ import com.facebook.presto.operator.SourceOperatorFactory; import com.facebook.presto.operator.project.CursorProcessor; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorPageSource; @@ -503,9 +503,9 @@ public void assertCachedInstanceHasBoundedRetainedSize(String projection) } } - private long getRetainedSizeOfCachedInstance(PageProjection projection) + private long getRetainedSizeOfCachedInstance(PageProjectionWithOutputs projection) { - Field[] fields = projection.getClass().getDeclaredFields(); + Field[] fields = projection.getPageProjection().getClass().getDeclaredFields(); long retainedSize = 0; for (Field field : fields) { field.setAccessible(true); diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index 08a173f7c5c23..8742be114dbf2 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -24,6 +24,7 @@ import com.facebook.presto.spi.relation.CallExpression; import org.testng.annotations.Test; +import java.util.List; import java.util.Optional; import java.util.function.Supplier; @@ -90,7 +91,7 @@ public void testGeneratedClassName() String classSuffix = stageId + "_" + planNodeId; Supplier projectionSupplier = functionCompiler.compileProjection(SESSION.getSqlFunctionProperties(), ADD_10_EXPRESSION, Optional.of(classSuffix)); PageProjection projection = projectionSupplier.get(); - Work work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), createLongBlockPage(0), SelectedPositions.positionsRange(0, 1)); + Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), createLongBlockPage(0), SelectedPositions.positionsRange(0, 1)); // class name should look like PageProjectionOutput_20170707_223500_67496_zguwn_2_7_XX assertTrue(work.getClass().getSimpleName().startsWith("PageProjectionWork_" + stageId.replace('.', '_') + "_" + planNodeId)); } @@ -129,9 +130,9 @@ public void testCache() private Block project(PageProjection projection, Page page, SelectedPositions selectedPositions) { - Work work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), page, selectedPositions); + Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), page, selectedPositions); assertTrue(work.process()); - return work.getResult(); + return work.getResult().get(0); } private static Page createLongBlockPage(long... values) From ee1f00442f315024c1d1e8703f7c66a0587050b2 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Tue, 7 Apr 2020 18:14:16 -0700 Subject: [PATCH 039/129] Add API in PageFunctionCompiler to compile a list of projections --- .../presto/benchmark/HandTpchQuery6.java | 6 +++--- .../index/DynamicTupleFilterFactory.java | 19 +++++++++++-------- .../presto/sql/gen/ExpressionCompiler.java | 11 ++++------- .../presto/sql/gen/PageFunctionCompiler.java | 17 +++++++++++++++++ 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java index 1f119146fad00..3c6ee0f8afa33 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java @@ -21,7 +21,6 @@ import com.facebook.presto.operator.project.InputChannels; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; @@ -45,6 +44,7 @@ import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; +import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.units.DataSize.Unit.BYTE; public class HandTpchQuery6 @@ -72,12 +72,12 @@ protected List createOperatorFactories() // and quantity < 24; OperatorFactory tableScanOperator = createTableScanOperator(0, new PlanNodeId("test"), "lineitem", "extendedprice", "discount", "shipdate", "quantity"); - Supplier projection = new PageFunctionCompiler(localQueryRunner.getMetadata(), 0).compileProjection(session.getSqlFunctionProperties(), field(0, BIGINT), Optional.empty()); + List> projection = new PageFunctionCompiler(localQueryRunner.getMetadata(), 0).compileProjections(session.getSqlFunctionProperties(), ImmutableList.of(field(0, BIGINT)), Optional.empty()); FilterAndProjectOperator.FilterAndProjectOperatorFactory tpchQuery6Operator = new FilterAndProjectOperator.FilterAndProjectOperatorFactory( 1, new PlanNodeId("test"), - () -> new PageProcessor(Optional.of(new TpchQuery6Filter()), ImmutableList.of(new PageProjectionWithOutputs(projection.get(), new int[] {0}))), + () -> new PageProcessor(Optional.of(new TpchQuery6Filter()), projection.stream().map(Supplier::get).collect(toImmutableList())), ImmutableList.of(DOUBLE), new DataSize(0, BYTE), 0); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java index 4214686403980..72c4c9176f201 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java @@ -15,7 +15,6 @@ import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.block.Block; @@ -51,7 +50,7 @@ public class DynamicTupleFilterFactory private final List filterTypes; private final List outputTypes; - private final List> outputProjections; + private final List> outputProjections; public DynamicTupleFilterFactory( int filterOperatorId, @@ -81,9 +80,12 @@ public DynamicTupleFilterFactory( .collect(toImmutableList()); this.outputTypes = ImmutableList.copyOf(outputTypes); - this.outputProjections = IntStream.range(0, outputTypes.size()) - .mapToObj(field -> pageFunctionCompiler.compileProjection(sqlFunctionProperties, Expressions.field(field, outputTypes.get(field)), Optional.empty())) - .collect(toImmutableList()); + this.outputProjections = pageFunctionCompiler.compileProjections( + sqlFunctionProperties, + IntStream.range(0, outputTypes.size()) + .mapToObj(field -> Expressions.field(field, outputTypes.get(field))) + .collect(toImmutableList()), + Optional.empty()); } public OperatorFactory filterWithTuple(Page tuplePage) @@ -99,9 +101,10 @@ public Supplier createPageProcessor(Page filterTuple, OptionalInt TuplePageFilter filter = new TuplePageFilter(filterTuple, filterTypes, outputFilterChannels); return () -> new PageProcessor( Optional.of(filter), - IntStream.range(0, outputProjections.size()) - .mapToObj(index -> new PageProjectionWithOutputs(outputProjections.get(index).get(), new int[] {index})) - .collect(toImmutableList()), initialBatchSize); + outputProjections.stream() + .map(Supplier::get) + .collect(toImmutableList()), + initialBatchSize); } private Page getFilterTuple(Page tuplePage) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java index 0774a80d885c0..087d4c1f740fb 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java @@ -19,7 +19,6 @@ import com.facebook.presto.operator.project.CursorProcessor; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.SqlFunctionProperties; @@ -39,7 +38,6 @@ import java.util.Optional; import java.util.OptionalInt; import java.util.function.Supplier; -import java.util.stream.IntStream; import static com.facebook.presto.bytecode.Access.FINAL; import static com.facebook.presto.bytecode.Access.PUBLIC; @@ -106,13 +104,12 @@ private Supplier compilePageProcessor( OptionalInt initialBatchSize) { Optional> filterFunctionSupplier = filter.map(expression -> pageFunctionCompiler.compileFilter(sqlFunctionProperties, expression, classNameSuffix)); - List> pageProjectionSuppliers = projections.stream() - .map(projection -> pageFunctionCompiler.compileProjection(sqlFunctionProperties, projection, classNameSuffix)) - .collect(toImmutableList()); + List> pageProjectionSuppliers = pageFunctionCompiler.compileProjections(sqlFunctionProperties, projections, classNameSuffix); + return () -> { Optional filterFunction = filterFunctionSupplier.map(Supplier::get); - List pageProjections = IntStream.range(0, pageProjectionSuppliers.size()) - .mapToObj(index -> new PageProjectionWithOutputs(pageProjectionSuppliers.get(index).get(), new int[] {index})) + List pageProjections = pageProjectionSuppliers.stream() + .map(Supplier::get) .collect(toImmutableList()); return new PageProcessor(filterFunction, pageProjections, initialBatchSize); }; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 38ae7ce029df2..27a1ee45466f8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -33,6 +33,7 @@ import com.facebook.presto.operator.project.PageFieldsToInputParametersRewriter; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; @@ -49,6 +50,7 @@ import com.facebook.presto.sql.planner.CompilerConfig; import com.facebook.presto.sql.relational.Expressions; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; +import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -66,6 +68,7 @@ import java.util.TreeSet; import java.util.function.Consumer; import java.util.function.Supplier; +import java.util.stream.IntStream; import static com.facebook.presto.bytecode.Access.FINAL; import static com.facebook.presto.bytecode.Access.PRIVATE; @@ -91,6 +94,7 @@ import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.google.common.base.MoreObjects.toStringHelper; +import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; public class PageFunctionCompiler @@ -156,6 +160,14 @@ public CacheStatsMBean getFilterCache() return filterCacheStats; } + public List> compileProjections(SqlFunctionProperties sqlFunctionProperties, List projections, Optional classNameSuffix) + { + return IntStream.range(0, projections.size()) + .mapToObj(outputChannel -> toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projections.get(outputChannel), classNameSuffix), new int[] {outputChannel})) + .collect(toImmutableList()); + } + + @VisibleForTesting public Supplier compileProjection(SqlFunctionProperties sqlFunctionProperties, RowExpression projection, Optional classNameSuffix) { if (projectionCache == null) { @@ -164,6 +176,11 @@ public Supplier compileProjection(SqlFunctionProperties sqlFunct return projectionCache.getUnchecked(new CacheKey(sqlFunctionProperties, projection)); } + private Supplier toPageProjectionWithOutputs(Supplier pageProjection, int[] outputChannels) + { + return () -> new PageProjectionWithOutputs(pageProjection.get(), outputChannels); + } + private Supplier compileProjectionInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression projection, Optional classNameSuffix) { requireNonNull(projection, "projection is null"); From a95a5bf3eb305992e6cd45ffd1cea83549e6e465 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Wed, 8 Apr 2020 16:24:18 -0700 Subject: [PATCH 040/129] Remove PageProjection::getType --- .../benchmark/AbstractOperatorBenchmark.java | 2 +- .../project/ConstantPageProjection.java | 8 -------- .../DictionaryAwarePageProjection.java | 7 ------- .../project/GeneratedPageProjection.java | 7 ------- .../operator/project/InputPageProjection.java | 11 +--------- .../operator/project/PageProjection.java | 3 --- .../presto/sql/gen/PageFunctionCompiler.java | 2 +- .../TestDictionaryAwarePageProjection.java | 8 -------- .../operator/project/TestPageProcessor.java | 20 ++++--------------- 9 files changed, 7 insertions(+), 61 deletions(-) diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java index c18a558cb2e32..4be8b7c8fbddc 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java @@ -215,7 +215,7 @@ protected final OperatorFactory createHashProjectOperator(int operatorId, PlanNo VariableReferenceExpression variable = new VariableReferenceExpression("h" + channel, types.get(channel)); variables.add(variable); variableToInputMapping.put(variable, channel); - projections.add(new PageProjectionWithOutputs(new InputPageProjection(channel, types.get(channel)), new int[] {channel})); + projections.add(new PageProjectionWithOutputs(new InputPageProjection(channel), new int[] {channel})); } Optional hashExpression = HashGenerationOptimizer.getHashExpression(localQueryRunner.getMetadata().getFunctionManager(), variables.build()); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java index b584d7e5029c3..4ef693eeb9d05 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java @@ -33,23 +33,15 @@ public class ConstantPageProjection { private static final InputChannels INPUT_PARAMETERS = new InputChannels(ImmutableList.of()); - private final Type type; private final Block value; public ConstantPageProjection(Object value, Type type) { - this.type = type; BlockBuilder blockBuilder = type.createBlockBuilder(null, 1); writeNativeValue(type, blockBuilder, value); this.value = blockBuilder.build(); } - @Override - public Type getType() - { - return type; - } - @Override public boolean isDeterministic() { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java index 3efae8cbea511..84c28680ccbfa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java @@ -22,7 +22,6 @@ import com.facebook.presto.spi.block.DictionaryId; import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -53,12 +52,6 @@ public DictionaryAwarePageProjection(PageProjection projection, Function compileProjectionInternal(SqlFunctionProperties if (projection instanceof InputReferenceExpression) { InputReferenceExpression input = (InputReferenceExpression) projection; - InputPageProjection projectionFunction = new InputPageProjection(input.getField(), input.getType()); + InputPageProjection projectionFunction = new InputPageProjection(input.getField()); return () -> projectionFunction; } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java index c0f49f7240fa5..8466137d4ac64 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java @@ -23,7 +23,6 @@ import com.facebook.presto.spi.block.LongArrayBlock; import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -63,7 +62,6 @@ public void testDelegateMethods() DictionaryAwarePageProjection projection = createProjection(); assertEquals(projection.isDeterministic(), true); assertEquals(projection.getInputChannels().getInputChannels(), ImmutableList.of(3)); - assertEquals(projection.getType(), BIGINT); } @Test(dataProvider = "forceYield") @@ -290,12 +288,6 @@ private static LazyBlock lazyWrapper(Block block) private static class TestPageProjection implements PageProjection { - @Override - public Type getType() - { - return BIGINT; - } - @Override public boolean isDeterministic() { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java index 5b4b483bf260d..ffa72b6e1b009 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java @@ -276,8 +276,8 @@ public void testAdaptiveBatchSize() @Test public void testOptimisticProcessing() { - InvocationCountPageProjection firstProjection = new InvocationCountPageProjection(new InputPageProjection(0, VARCHAR)); - InvocationCountPageProjection secondProjection = new InvocationCountPageProjection(new InputPageProjection(0, VARCHAR)); + InvocationCountPageProjection firstProjection = new InvocationCountPageProjection(new InputPageProjection(0)); + InvocationCountPageProjection secondProjection = new InvocationCountPageProjection(new InputPageProjection(0)); PageProcessor pageProcessor = new PageProcessor(Optional.empty(), ImmutableList.of(new PageProjectionWithOutputs(firstProjection, new int[] {0}), new PageProjectionWithOutputs(secondProjection, new int[] {1})), OptionalInt.of(MAX_BATCH_SIZE)); // process large page which will reduce batch size @@ -350,7 +350,7 @@ public void testYieldProjection() DriverYieldSignal yieldSignal = new DriverYieldSignal(); PageProcessor pageProcessor = new PageProcessor( Optional.empty(), - IntStream.range(0, 20).mapToObj(i -> new PageProjectionWithOutputs(new YieldPageProjection(new InputPageProjection(0, VARCHAR)), new int[] {i})).collect(toImmutableList()), + IntStream.range(0, 20).mapToObj(i -> new PageProjectionWithOutputs(new YieldPageProjection(new InputPageProjection(0)), new int[] {i})).collect(toImmutableList()), OptionalInt.of(MAX_BATCH_SIZE)); Slice[] slices = new Slice[rows]; @@ -488,7 +488,7 @@ public void testDecreasingBatchSize() private PageProjectionWithOutputs createInputPageProjectionWithOutputs(int inputChannel, Type type, int outputChannel) { - return new PageProjectionWithOutputs(new InputPageProjection(inputChannel, type), new int[] {outputChannel}); + return new PageProjectionWithOutputs(new InputPageProjection(inputChannel), new int[] {outputChannel}); } private Iterator> processAndAssertRetainedPageSize(PageProcessor pageProcessor, Page inputPage) @@ -523,12 +523,6 @@ public InvocationCountPageProjection(PageProjection delegate) this.delegate = delegate; } - @Override - public Type getType() - { - return delegate.getType(); - } - @Override public boolean isDeterministic() { @@ -605,12 +599,6 @@ public List getResult() public static class LazyPagePageProjection implements PageProjection { - @Override - public Type getType() - { - return BIGINT; - } - @Override public boolean isDeterministic() { From bc8e55724705f209977ac368ab9815a4da7e0a44 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Thu, 9 Apr 2020 18:20:53 -0700 Subject: [PATCH 041/129] Change PageFunctionCompiler to compile a list of projections --- .../project/GeneratedPageProjection.java | 18 +-- .../PageFieldsToInputParametersRewriter.java | 24 +++- .../operator/project/PageProcessor.java | 5 +- .../sql/gen/LambdaBytecodeGenerator.java | 19 ++- .../presto/sql/gen/PageFunctionCompiler.java | 129 +++++++++++------- 5 files changed, 122 insertions(+), 73 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java index 85fc120ed686d..4f25d68dbd7a9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java @@ -20,30 +20,32 @@ import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.RowExpression; +import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import static com.google.common.base.MoreObjects.toStringHelper; +import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; public class GeneratedPageProjection implements PageProjection { - private final RowExpression projection; + private final List projections; private final boolean isDeterministic; private final InputChannels inputChannels; private final MethodHandle pageProjectionWorkFactory; - private BlockBuilder blockBuilder; + private List blockBuilders; - public GeneratedPageProjection(RowExpression projection, boolean isDeterministic, InputChannels inputChannels, MethodHandle pageProjectionWorkFactory) + public GeneratedPageProjection(List projections, boolean isDeterministic, InputChannels inputChannels, MethodHandle pageProjectionWorkFactory) { - this.projection = requireNonNull(projection, "projection is null"); + this.projections = ImmutableList.copyOf(requireNonNull(projections, "projections is null")); this.isDeterministic = isDeterministic; this.inputChannels = requireNonNull(inputChannels, "inputChannels is null"); this.pageProjectionWorkFactory = requireNonNull(pageProjectionWorkFactory, "pageProjectionWorkFactory is null"); - this.blockBuilder = projection.getType().createBlockBuilder(null, 1); + this.blockBuilders = projections.stream().map(RowExpression::getType).map(type -> type.createBlockBuilder(null, 1)).collect(toImmutableList()); } @Override @@ -61,9 +63,9 @@ public InputChannels getInputChannels() @Override public Work> project(SqlFunctionProperties properties, DriverYieldSignal yieldSignal, Page page, SelectedPositions selectedPositions) { - blockBuilder = blockBuilder.newBlockBuilderLike(null); + blockBuilders = blockBuilders.stream().map(blockBuilder -> blockBuilder.newBlockBuilderLike(null)).collect(toImmutableList()); try { - return (Work>) pageProjectionWorkFactory.invoke(blockBuilder, properties, page, selectedPositions); + return (Work>) pageProjectionWorkFactory.invoke(blockBuilders, properties, page, selectedPositions); } catch (Throwable e) { throw new RuntimeException(e); @@ -74,7 +76,7 @@ public Work> project(SqlFunctionProperties properties, DriverYieldSi public String toString() { return toStringHelper(this) - .add("projection", projection) + .add("projections", projections) .toString(); } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFieldsToInputParametersRewriter.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFieldsToInputParametersRewriter.java index 6f2c87bf1ee5c..40647b9a2b850 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFieldsToInputParametersRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFieldsToInputParametersRewriter.java @@ -29,6 +29,7 @@ import java.util.Map; import static com.facebook.presto.sql.relational.Expressions.field; +import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.toImmutableList; /** @@ -40,11 +41,16 @@ public final class PageFieldsToInputParametersRewriter private PageFieldsToInputParametersRewriter() {} public static Result rewritePageFieldsToInputParameters(RowExpression expression) + { + return rewritePageFieldsToInputParameters(ImmutableList.of(expression)); + } + + public static Result rewritePageFieldsToInputParameters(List expressions) { Visitor visitor = new Visitor(); - RowExpression rewrittenProjection = expression.accept(visitor, null); + List rewrittenExpressions = expressions.stream().map(expression -> expression.accept(visitor, null)).collect(toImmutableList()); InputChannels inputChannels = new InputChannels(visitor.getInputChannels()); - return new Result(rewrittenProjection, inputChannels); + return new Result(rewrittenExpressions, inputChannels); } private static class Visitor @@ -121,18 +127,24 @@ public RowExpression visitSpecialForm(SpecialFormExpression specialForm, Void co public static class Result { - private final RowExpression rewrittenExpression; + private final List rewrittenExpressions; private final InputChannels inputChannels; - public Result(RowExpression rewrittenExpression, InputChannels inputChannels) + public Result(List rewrittenExpressions, InputChannels inputChannels) { - this.rewrittenExpression = rewrittenExpression; + this.rewrittenExpressions = rewrittenExpressions; this.inputChannels = inputChannels; } + public List getRewrittenExpressions() + { + return rewrittenExpressions; + } + public RowExpression getRewrittenExpression() { - return rewrittenExpression; + checkState(rewrittenExpressions.size() == 1, "Expect only one expression"); + return rewrittenExpressions.get(0); } public InputChannels getInputChannels() diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java index 05a4c34807e4c..5a29afb5c68b4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java @@ -79,8 +79,9 @@ public PageProcessor(Optional filter, List outputChannels = projections.stream().map(PageProjectionWithOutputs::getOutputChannels).map(Arrays::stream).map(IntStream::boxed).flatMap(identity()).distinct().collect(toImmutableList()); int outputCount = projections.stream().map(PageProjectionWithOutputs::getOutputCount).reduce(Integer::sum).orElse(0); - verify(outputChannels.size() == outputCount, format("outputChannels size: %d (%s), outputCount %d, projections: %s", outputChannels.size(), outputChannels, outputCount, projections)); - verify(outputCount == 0 || outputChannels.stream().max(Integer::compareTo).orElse(0) == outputChannels.size() - 1, format("outputCount: %d, outputChannels: %s", outputCount, outputChannels)); + verify( + outputChannels.size() == outputCount && (outputCount == 0 || outputChannels.stream().max(Integer::compareTo).orElse(0) == outputChannels.size() - 1), + format("Invalid outputChannels: outputCount: %d, outputChannels: %s", outputCount, outputChannels)); this.filter = requireNonNull(filter, "filter is null") .map(pageFilter -> { diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java index 261ec4613875f..8d1a56eb1c8f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java @@ -39,7 +39,6 @@ import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.common.primitives.Primitives; import org.objectweb.asm.Handle; import org.objectweb.asm.Opcodes; @@ -64,11 +63,11 @@ import static com.facebook.presto.sql.gen.BytecodeUtils.boxPrimitiveIfNecessary; import static com.facebook.presto.sql.gen.BytecodeUtils.unboxPrimitiveIfNecessary; import static com.facebook.presto.sql.gen.LambdaCapture.LAMBDA_CAPTURE_METHOD; -import static com.facebook.presto.sql.gen.LambdaExpressionExtractor.extractLambdaExpressions; import static com.facebook.presto.util.CompilerUtils.defineClass; import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Failures.checkCondition; import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.ImmutableSet.toImmutableSet; import static java.util.Objects.requireNonNull; import static org.objectweb.asm.Type.getMethodType; import static org.objectweb.asm.Type.getType; @@ -99,7 +98,19 @@ public static Map generateMethodsFor SqlFunctionProperties sqlFunctionProperties, String methodNamePrefix) { - Set lambdaExpressions = ImmutableSet.copyOf(extractLambdaExpressions(expression)); + return generateMethodsForLambda(containerClassDefinition, callSiteBinder, cachedInstanceBinder, ImmutableList.of(expression), metadata, sqlFunctionProperties, methodNamePrefix); + } + + public static Map generateMethodsForLambda( + ClassDefinition containerClassDefinition, + CallSiteBinder callSiteBinder, + CachedInstanceBinder cachedInstanceBinder, + List expressions, + Metadata metadata, + SqlFunctionProperties sqlFunctionProperties, + String methodNamePrefix) + { + Set lambdaExpressions = expressions.stream().map(LambdaExpressionExtractor::extractLambdaExpressions).flatMap(List::stream).collect(toImmutableSet()); ImmutableMap.Builder compiledLambdaMap = ImmutableMap.builder(); int counter = 0; @@ -123,7 +134,7 @@ public static Map generateMethodsFor /** * @return a MethodHandle field that represents the lambda expression */ - public static CompiledLambda preGenerateLambdaExpression( + private static CompiledLambda preGenerateLambdaExpression( LambdaDefinitionExpression lambdaExpression, String methodName, ClassDefinition classDefinition, diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index c0e280ed6129c..5065dd762bfed 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -40,17 +40,20 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; +import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.sql.gen.LambdaBytecodeGenerator.CompiledLambda; import com.facebook.presto.sql.planner.CompilerConfig; import com.facebook.presto.sql.relational.Expressions; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Joiner; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; @@ -61,6 +64,7 @@ import javax.annotation.Nullable; import javax.inject.Inject; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; @@ -94,6 +98,7 @@ import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.google.common.base.MoreObjects.toStringHelper; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; @@ -123,7 +128,7 @@ public PageFunctionCompiler(Metadata metadata, int expressionCacheSize) projectionCache = CacheBuilder.newBuilder() .recordStats() .maximumSize(expressionCacheSize) - .build(CacheLoader.from(cacheKey -> compileProjectionInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpression, Optional.empty()))); + .build(CacheLoader.from(cacheKey -> compileProjectionInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions, Optional.empty()))); projectionCacheStats = new CacheStatsMBean(projectionCache); } else { @@ -135,7 +140,7 @@ public PageFunctionCompiler(Metadata metadata, int expressionCacheSize) filterCache = CacheBuilder.newBuilder() .recordStats() .maximumSize(expressionCacheSize) - .build(CacheLoader.from(cacheKey -> compileFilterInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpression, Optional.empty()))); + .build(CacheLoader.from(cacheKey -> compileFilterInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions.get(0), Optional.empty()))); filterCacheStats = new CacheStatsMBean(filterCache); } else { @@ -170,21 +175,6 @@ public List> compileProjections(SqlFunctionP @VisibleForTesting public Supplier compileProjection(SqlFunctionProperties sqlFunctionProperties, RowExpression projection, Optional classNameSuffix) { - if (projectionCache == null) { - return compileProjectionInternal(sqlFunctionProperties, projection, classNameSuffix); - } - return projectionCache.getUnchecked(new CacheKey(sqlFunctionProperties, projection)); - } - - private Supplier toPageProjectionWithOutputs(Supplier pageProjection, int[] outputChannels) - { - return () -> new PageProjectionWithOutputs(pageProjection.get(), outputChannels); - } - - private Supplier compileProjectionInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression projection, Optional classNameSuffix) - { - requireNonNull(projection, "projection is null"); - if (projection instanceof InputReferenceExpression) { InputReferenceExpression input = (InputReferenceExpression) projection; InputPageProjection projectionFunction = new InputPageProjection(input.getField()); @@ -197,12 +187,29 @@ private Supplier compileProjectionInternal(SqlFunctionProperties return () -> projectionFunction; } - PageFieldsToInputParametersRewriter.Result result = rewritePageFieldsToInputParameters(projection); + if (projectionCache == null) { + return compileProjectionInternal(sqlFunctionProperties, ImmutableList.of(projection), classNameSuffix); + } + return projectionCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(projection))); + } + + private Supplier toPageProjectionWithOutputs(Supplier pageProjection, int[] outputChannels) + { + return () -> new PageProjectionWithOutputs(pageProjection.get(), outputChannels); + } + + private Supplier compileProjectionInternal(SqlFunctionProperties sqlFunctionProperties, List projections, Optional classNameSuffix) + { + requireNonNull(projections, "projections is null"); + checkArgument(projections.stream().allMatch(projection -> projection instanceof CallExpression || projection instanceof SpecialFormExpression)); + + PageFieldsToInputParametersRewriter.Result result = rewritePageFieldsToInputParameters(projections); + List rewrittenExpression = result.getRewrittenExpressions(); CallSiteBinder callSiteBinder = new CallSiteBinder(); // generate Work - ClassDefinition pageProjectionWorkDefinition = definePageProjectWorkClass(sqlFunctionProperties, result.getRewrittenExpression(), callSiteBinder, classNameSuffix); + ClassDefinition pageProjectionWorkDefinition = definePageProjectWorkClass(sqlFunctionProperties, rewrittenExpression, callSiteBinder, classNameSuffix); Class pageProjectionWorkClass; try { @@ -213,10 +220,10 @@ private Supplier compileProjectionInternal(SqlFunctionProperties } return () -> new GeneratedPageProjection( - result.getRewrittenExpression(), - determinismEvaluator.isDeterministic(result.getRewrittenExpression()), + rewrittenExpression, + rewrittenExpression.stream().allMatch(determinismEvaluator::isDeterministic), result.getInputChannels(), - constructorMethodHandle(pageProjectionWorkClass, BlockBuilder.class, SqlFunctionProperties.class, Page.class, SelectedPositions.class)); + constructorMethodHandle(pageProjectionWorkClass, List.class, SqlFunctionProperties.class, Page.class, SelectedPositions.class)); } private static ParameterizedType generateProjectionWorkClassName(Optional classNameSuffix) @@ -224,7 +231,7 @@ private static ParameterizedType generateProjectionWorkClassName(Optional classNameSuffix) + private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunctionProperties, List projections, CallSiteBinder callSiteBinder, Optional classNameSuffix) { ClassDefinition classDefinition = new ClassDefinition( a(PUBLIC, FINAL), @@ -232,7 +239,7 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc type(Object.class), type(Work.class)); - FieldDefinition blockBuilderField = classDefinition.declareField(a(PRIVATE), "blockBuilder", BlockBuilder.class); + FieldDefinition blockBuilderFields = classDefinition.declareField(a(PRIVATE), "blockBuilders", List.class); FieldDefinition propertiesField = classDefinition.declareField(a(PRIVATE), "properties", SqlFunctionProperties.class); FieldDefinition pageField = classDefinition.declareField(a(PRIVATE), "page", Page.class); FieldDefinition selectedPositionsField = classDefinition.declareField(a(PRIVATE), "selectedPositions", SelectedPositions.class); @@ -242,23 +249,23 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc CachedInstanceBinder cachedInstanceBinder = new CachedInstanceBinder(classDefinition, callSiteBinder); // process - generateProcessMethod(classDefinition, blockBuilderField, propertiesField, pageField, selectedPositionsField, nextIndexOrPositionField, resultField); + generateProcessMethod(classDefinition, blockBuilderFields, projections.size(), propertiesField, pageField, selectedPositionsField, nextIndexOrPositionField, resultField); // getResult MethodDefinition method = classDefinition.declareMethod(a(PUBLIC), "getResult", type(Object.class), ImmutableList.of()); method.getBody().append(method.getThis().getField(resultField)).ret(Object.class); // evaluate - Map compiledLambdaMap = generateMethodsForLambda(classDefinition, callSiteBinder, cachedInstanceBinder, projection, metadata, sqlFunctionProperties); - generateEvaluateMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, projection, blockBuilderField); + Map compiledLambdaMap = generateMethodsForLambda(classDefinition, callSiteBinder, cachedInstanceBinder, projections, metadata, sqlFunctionProperties, ""); + generateEvaluateMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, projections, blockBuilderFields); // constructor - Parameter blockBuilder = arg("blockBuilder", BlockBuilder.class); + Parameter blockBuilders = arg("blockBuilders", List.class); Parameter properties = arg("properties", SqlFunctionProperties.class); Parameter page = arg("page", Page.class); Parameter selectedPositions = arg("selectedPositions", SelectedPositions.class); - MethodDefinition constructorDefinition = classDefinition.declareConstructor(a(PUBLIC), blockBuilder, properties, page, selectedPositions); + MethodDefinition constructorDefinition = classDefinition.declareConstructor(a(PUBLIC), blockBuilders, properties, page, selectedPositions); BytecodeBlock body = constructorDefinition.getBody(); Variable thisVariable = constructorDefinition.getThis(); @@ -266,7 +273,9 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc body.comment("super();") .append(thisVariable) .invokeConstructor(Object.class) - .append(thisVariable.setField(blockBuilderField, blockBuilder)) + .append(thisVariable) + .append(invokeStatic(ImmutableList.class, "copyOf", ImmutableList.class, blockBuilders.cast(Collection.class))) + .putField(blockBuilderFields) .append(thisVariable.setField(propertiesField, properties)) .append(thisVariable.setField(pageField, page)) .append(thisVariable.setField(selectedPositionsField, selectedPositions)) @@ -281,7 +290,8 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc private static MethodDefinition generateProcessMethod( ClassDefinition classDefinition, - FieldDefinition blockBuilder, + FieldDefinition blockBuilders, + int blockBuilderSize, FieldDefinition properties, FieldDefinition page, FieldDefinition selectedPositions, @@ -298,7 +308,6 @@ private static MethodDefinition generateProcessMethod( Variable to = scope.declareVariable("to", body, add(thisVariable.getField(selectedPositions).invoke("getOffset", int.class), thisVariable.getField(selectedPositions).invoke("size", int.class))); Variable positions = scope.declareVariable(int[].class, "positions"); Variable index = scope.declareVariable(int.class, "index"); - Variable blockList = scope.declareVariable(List.class, "blockList"); IfStatement ifStatement = new IfStatement() .condition(thisVariable.getField(selectedPositions).invoke("isList", boolean.class)); @@ -320,11 +329,21 @@ private static MethodDefinition generateProcessMethod( .body(new BytecodeBlock() .append(thisVariable.invoke("evaluate", void.class, thisVariable.getField(properties), thisVariable.getField(page), index)))); - body.comment("result = ImmutableList.of(this.blockBuilder.build(); return true;") - .append(thisVariable.getField(blockBuilder).invoke("build", Block.class)) - .invokeStatic(ImmutableList.class, "of", ImmutableList.class, Object.class) - .putVariable(blockList) - .append(thisVariable.setField(result, blockList)) + Variable blocksBuilder = scope.declareVariable("blocksBuilder", body, invokeStatic(ImmutableList.class, "builder", ImmutableList.Builder.class)); + Variable iterator = scope.createTempVariable(int.class); + ForLoop forLoop = new ForLoop("for (iterator = 0; iterator < this.blockBuilders.size(); iterator ++) blockBuildersBuilder.add(this.blockBuilders.get(iterator).builder();") + .initialize(iterator.set(constantInt(0))) + .condition(lessThan(iterator, constantInt(blockBuilderSize))) + .update(iterator.increment()) + .body(new BytecodeBlock() + .append(blocksBuilder.invoke( + "add", + ImmutableList.Builder.class, + thisVariable.getField(blockBuilders).invoke("get", Object.class, iterator).cast(BlockBuilder.class).invoke("build", Block.class).cast(Object.class)).pop())); + + body.append(forLoop) + .comment("result = blockBuildersBuilder.build(); return true") + .append(thisVariable.setField(result, blocksBuilder.invoke("build", ImmutableList.class))) .push(true) .retBoolean(); @@ -337,8 +356,8 @@ private MethodDefinition generateEvaluateMethod( CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, Map compiledLambdaMap, - RowExpression projection, - FieldDefinition blockBuilder) + List projections, + FieldDefinition blockBuilders) { Parameter properties = arg("properties", SqlFunctionProperties.class); Parameter page = arg("page", Page.class); @@ -354,13 +373,13 @@ private MethodDefinition generateEvaluateMethod( .add(position) .build()); - method.comment("Projection: %s", projection.toString()); + method.comment("Projections: %s", Joiner.on(", ").join(projections)); Scope scope = method.getScope(); BytecodeBlock body = method.getBody(); Variable thisVariable = method.getThis(); - declareBlockVariables(projection, page, scope, body); + declareBlockVariables(projections, page, scope, body); scope.declareVariable("wasNull", body, constantFalse()); RowExpressionCompiler compiler = new RowExpressionCompiler( @@ -373,9 +392,11 @@ private MethodDefinition generateEvaluateMethod( compiledLambdaMap); Variable outputBlockVariable = scope.createTempVariable(BlockBuilder.class); - body.append(outputBlockVariable.set(thisVariable.getField(blockBuilder))) - .append(compiler.compile(projection, scope, Optional.of(outputBlockVariable))) - .ret(); + for (int i = 0; i < projections.size(); i++) { + body.append(outputBlockVariable.set(thisVariable.getField(blockBuilders).invoke("get", Object.class, constantInt(i)))) + .append(compiler.compile(projections.get(i), scope, Optional.of(outputBlockVariable))); + } + body.ret(); return method; } @@ -384,7 +405,7 @@ public Supplier compileFilter(SqlFunctionProperties sqlFunctionPrope if (filterCache == null) { return compileFilterInternal(sqlFunctionProperties, filter, classNameSuffix); } - return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, filter)); + return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(filter))); } private Supplier compileFilterInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, Optional classNameSuffix) @@ -537,7 +558,7 @@ private MethodDefinition generateFilterMethod( Scope scope = method.getScope(); BytecodeBlock body = method.getBody(); - declareBlockVariables(filter, page, scope, body); + declareBlockVariables(ImmutableList.of(filter), page, scope, body); Variable wasNullVariable = scope.declareVariable("wasNull", body, constantFalse()); RowExpressionCompiler compiler = new RowExpressionCompiler( @@ -578,9 +599,9 @@ private static void generateConstructor( body.ret(); } - private static void declareBlockVariables(RowExpression expression, Parameter page, Scope scope, BytecodeBlock body) + private static void declareBlockVariables(List expressions, Parameter page, Scope scope, BytecodeBlock body) { - for (int channel : getInputChannels(expression)) { + for (int channel : getInputChannels(expressions)) { scope.declareVariable("block_" + channel, body, page.invoke("getBlock", Block.class, constantInt(channel))); } } @@ -621,12 +642,14 @@ private static RowExpressionVisitor fieldReferenceCompiler( private static final class CacheKey { private final SqlFunctionProperties sqlFunctionProperties; - private final RowExpression rowExpression; + private final List rowExpressions; - private CacheKey(SqlFunctionProperties sqlFunctionProperties, RowExpression rowExpression) + private CacheKey(SqlFunctionProperties sqlFunctionProperties, List rowExpressions) { + requireNonNull(rowExpressions, "rowExpressions is null"); + checkArgument(rowExpressions.size() >= 1, "Expect at least one RowExpression"); this.sqlFunctionProperties = requireNonNull(sqlFunctionProperties, "sqlFunctionProperties is null"); - this.rowExpression = requireNonNull(rowExpression, "rowExpression is null"); + this.rowExpressions = ImmutableList.copyOf(rowExpressions); } @Override @@ -640,13 +663,13 @@ public boolean equals(Object o) } CacheKey that = (CacheKey) o; return Objects.equals(sqlFunctionProperties, that.sqlFunctionProperties) && - Objects.equals(rowExpression, that.rowExpression); + Objects.equals(rowExpressions, that.rowExpressions); } @Override public int hashCode() { - return Objects.hash(sqlFunctionProperties, rowExpression); + return Objects.hash(sqlFunctionProperties, rowExpressions); } } } From c096a8e9a913939e632bf86bc1c3fb34fd8d9e02 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Wed, 22 Apr 2020 14:47:20 -0700 Subject: [PATCH 042/129] Generate projection bytecode based on common sub expression --- .../presto/benchmark/HandTpchQuery6.java | 7 +- .../presto/SystemSessionProperties.java | 12 +- .../index/DynamicTupleFilterFactory.java | 1 + .../presto/sql/analyzer/FeaturesConfig.java | 14 + .../sql/gen/CommonSubExpressionRewriter.java | 324 ++++++++++++++++++ .../presto/sql/gen/ExpressionCompiler.java | 14 +- .../presto/sql/gen/PageFunctionCompiler.java | 277 +++++++++++++-- .../presto/sql/gen/RowExpressionCompiler.java | 1 - .../sql/planner/LocalExecutionPlanner.java | 5 +- .../sql/planner/PlanVariableAllocator.java | 7 +- .../operator/TestColumnarPageProcessor.java | 2 +- .../TestScanFilterAndProjectOperator.java | 2 +- .../scalar/TestPageProcessorCompiler.java | 10 +- .../sql/analyzer/TestFeaturesConfig.java | 7 +- .../gen/TestCommonSubExpressionRewritter.java | 124 +++++++ .../sql/gen/TestPageFunctionCompiler.java | 83 ++++- 16 files changed, 826 insertions(+), 64 deletions(-) create mode 100644 presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java create mode 100644 presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java index 3c6ee0f8afa33..8d06c20f17262 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java @@ -72,7 +72,12 @@ protected List createOperatorFactories() // and quantity < 24; OperatorFactory tableScanOperator = createTableScanOperator(0, new PlanNodeId("test"), "lineitem", "extendedprice", "discount", "shipdate", "quantity"); - List> projection = new PageFunctionCompiler(localQueryRunner.getMetadata(), 0).compileProjections(session.getSqlFunctionProperties(), ImmutableList.of(field(0, BIGINT)), Optional.empty()); + List> projection = new PageFunctionCompiler(localQueryRunner.getMetadata(), 0) + .compileProjections( + session.getSqlFunctionProperties(), + ImmutableList.of(field(0, BIGINT)), + false, + Optional.empty()); FilterAndProjectOperator.FilterAndProjectOperatorFactory tpchQuery6Operator = new FilterAndProjectOperator.FilterAndProjectOperatorFactory( 1, diff --git a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java index 9419bd7f519f1..e7d7669d1ac8a 100644 --- a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java +++ b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java @@ -149,6 +149,7 @@ public final class SystemSessionProperties public static final String PARTITIONING_PRECISION_STRATEGY = "partitioning_precision_strategy"; public static final String EXPERIMENTAL_FUNCTIONS_ENABLED = "experimental_functions_enabled"; public static final String USE_LEGACY_SCHEDULER = "use_legacy_scheduler"; + public static final String OPTIMIZE_COMMON_SUB_EXPRESSIONS = "optimize_common_sub_expressions"; private final List> sessionProperties; @@ -752,11 +753,15 @@ public SystemSessionProperties( "Enable listing of functions marked as experimental", featuresConfig.isExperimentalFunctionsEnabled(), false), - booleanProperty( USE_LEGACY_SCHEDULER, "Use version of scheduler before refactorings for section retries", featuresConfig.isUseLegacyScheduler(), + false), + booleanProperty( + OPTIMIZE_COMMON_SUB_EXPRESSIONS, + "Extract and compute common sub-expressions in projection", + featuresConfig.isOptimizeCommonSubExpressions(), false)); } @@ -1283,4 +1288,9 @@ public static boolean isUseLegacyScheduler(Session session) { return session.getSystemProperty(USE_LEGACY_SCHEDULER, Boolean.class); } + + public static boolean isOptimizeCommonSubExpressions(Session session) + { + return session.getSystemProperty(OPTIMIZE_COMMON_SUB_EXPRESSIONS, Boolean.class); + } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java index 72c4c9176f201..b255c5e5ae1e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java @@ -85,6 +85,7 @@ public DynamicTupleFilterFactory( IntStream.range(0, outputTypes.size()) .mapToObj(field -> Expressions.field(field, outputTypes.get(field))) .collect(toImmutableList()), + false, Optional.empty()); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java index 8d503ddb13fcc..f904aa45331d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/FeaturesConfig.java @@ -150,6 +150,7 @@ public class FeaturesConfig private boolean listBuiltInFunctionsOnly = true; private boolean experimentalFunctionsEnabled; private boolean useLegacyScheduler = true; + private boolean optimizeCommonSubExpressions = true; private PartitioningPrecisionStrategy partitioningPrecisionStrategy = PartitioningPrecisionStrategy.AUTOMATIC; @@ -1223,4 +1224,17 @@ public FeaturesConfig setUseLegacyScheduler(boolean useLegacyScheduler) this.useLegacyScheduler = useLegacyScheduler; return this; } + + public boolean isOptimizeCommonSubExpressions() + { + return optimizeCommonSubExpressions; + } + + @Config("optimize-common-sub-expressions") + @ConfigDescription("Extract and compute common sub expression in projections") + public FeaturesConfig setOptimizeCommonSubExpressions(boolean optimizeCommonSubExpressions) + { + this.optimizeCommonSubExpressions = optimizeCommonSubExpressions; + return this; + } } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java new file mode 100644 index 0000000000000..ad926060f0cb3 --- /dev/null +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java @@ -0,0 +1,324 @@ +/* + * 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 com.facebook.presto.sql.gen; + +import com.facebook.presto.spi.relation.CallExpression; +import com.facebook.presto.spi.relation.ConstantExpression; +import com.facebook.presto.spi.relation.InputReferenceExpression; +import com.facebook.presto.spi.relation.LambdaDefinitionExpression; +import com.facebook.presto.spi.relation.RowExpression; +import com.facebook.presto.spi.relation.RowExpressionVisitor; +import com.facebook.presto.spi.relation.SpecialFormExpression; +import com.facebook.presto.spi.relation.VariableReferenceExpression; +import com.facebook.presto.sql.planner.PlanVariableAllocator; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.WHEN; +import static com.facebook.presto.sql.relational.Expressions.subExpressions; +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.ImmutableMap.toImmutableMap; +import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static java.util.function.Function.identity; + +public class CommonSubExpressionRewriter +{ + private CommonSubExpressionRewriter() {} + + public static Map> collectCSEByLevel(List expressions) + { + if (expressions.isEmpty()) { + return ImmutableMap.of(); + } + + CommonSubExpressionCollector expressionCollector = new CommonSubExpressionCollector(); + expressions.forEach(expression -> expression.accept(expressionCollector, null)); + if (expressionCollector.cseByLevel.isEmpty()) { + return ImmutableMap.of(); + } + + Map> cseByLevel = removeRedundantCSE(expressionCollector.cseByLevel, expressionCollector.expressionCount); + + PlanVariableAllocator variableAllocator = new PlanVariableAllocator(); + ImmutableMap.Builder> commonSubExpressions = ImmutableMap.builder(); + Map rewriteWith = new HashMap<>(); + int startCSELevel = cseByLevel.keySet().stream().reduce(Math::min).get(); + int maxCSELevel = cseByLevel.keySet().stream().reduce(Math::max).get(); + for (int i = startCSELevel; i <= maxCSELevel; i++) { + if (cseByLevel.containsKey(i)) { + ExpressionRewriter rewriter = new ExpressionRewriter(rewriteWith); + ImmutableMap.Builder expressionVariableMapBuilder = ImmutableMap.builder(); + for (Map.Entry entry : cseByLevel.get(i).entrySet()) { + RowExpression rewrittenExpression = entry.getKey().accept(rewriter, null); + expressionVariableMapBuilder.put(rewrittenExpression, variableAllocator.newVariable(rewrittenExpression, "cse")); + } + Map expressionVariableMap = expressionVariableMapBuilder.build(); + commonSubExpressions.put(i, expressionVariableMap); + rewriteWith.putAll(expressionVariableMap.entrySet().stream().collect(toImmutableMap(Map.Entry::getKey, entry -> entry.getValue()))); + } + } + return commonSubExpressions.build(); + } + + public static Map> collectCSEByLevel(RowExpression expression) + { + return collectCSEByLevel(ImmutableList.of(expression)); + } + + public static List getExpressionsWithCSE(List expressions) + { + if (expressions.isEmpty()) { + return ImmutableList.of(); + } + CommonSubExpressionCollector expressionCollector = new CommonSubExpressionCollector(); + expressions.forEach(expression -> expression.accept(expressionCollector, null)); + Set cse = expressionCollector.cseByLevel.values().stream().flatMap(Set::stream).collect(toImmutableSet()); + SubExpressionChecker subExpressionChecker = new SubExpressionChecker(cse); + return expressions.stream().filter(expression -> expression.accept(subExpressionChecker, null)).collect(toImmutableList()); + } + + public static RowExpression rewriteExpressionWithCSE(RowExpression expression, Map rewriteWith) + { + ExpressionRewriter rewriter = new ExpressionRewriter(rewriteWith); + return expression.accept(rewriter, null); + } + + private static Map> removeRedundantCSE(Map> cseByLevel, Map expressionCount) + { + Map> results = new HashMap<>(); + int startCSELevel = cseByLevel.keySet().stream().reduce(Math::max).get(); + int stopCSELevel = cseByLevel.keySet().stream().reduce(Math::min).get(); + for (int i = startCSELevel; i > stopCSELevel; i--) { + Map expressions = cseByLevel.get(i).stream().filter(expression -> expressionCount.get(expression) > 0).collect(toImmutableMap(identity(), expressionCount::get)); + if (!expressions.isEmpty()) { + results.put(i, expressions); + } + for (RowExpression expression : expressions.keySet()) { + int expressionOccurrence = expressionCount.get(expression); + subExpressions(expression).stream() + .filter(subExpression -> !subExpression.equals(expression)) + .forEach(subExpression -> { + if (expressionCount.containsKey(subExpression)) { + expressionCount.put(subExpression, expressionCount.get(subExpression) - expressionOccurrence); + } + }); + } + } + Map expressions = cseByLevel.get(stopCSELevel).stream().filter(expression -> expressionCount.get(expression) > 0).collect(toImmutableMap(identity(), expression -> expressionCount.get(expression) + 1)); + if (!expressions.isEmpty()) { + results.put(stopCSELevel, expressions); + } + return results; + } + + static class SubExpressionChecker + implements RowExpressionVisitor + { + private final Set subExpressions; + + SubExpressionChecker(Set subExpressions) + { + this.subExpressions = subExpressions; + } + + @Override + public Boolean visitCall(CallExpression call, Void context) + { + if (subExpressions.contains(call)) { + return true; + } + if (call.getArguments().isEmpty()) { + return false; + } + return call.getArguments().stream().anyMatch(expression -> expression.accept(this, null)); + } + + @Override + public Boolean visitInputReference(InputReferenceExpression reference, Void context) + { + return subExpressions.contains(reference); + } + + @Override + public Boolean visitConstant(ConstantExpression literal, Void context) + { + return subExpressions.contains(literal); + } + + @Override + public Boolean visitLambda(LambdaDefinitionExpression lambda, Void context) + { + return false; + } + + @Override + public Boolean visitVariableReference(VariableReferenceExpression reference, Void context) + { + return subExpressions.contains(reference); + } + + @Override + public Boolean visitSpecialForm(SpecialFormExpression specialForm, Void context) + { + if (subExpressions.contains(specialForm)) { + return true; + } + if (specialForm.getArguments().isEmpty()) { + return false; + } + return specialForm.getArguments().stream().anyMatch(expression -> expression.accept(this, null)); + } + } + + static class ExpressionRewriter + implements RowExpressionVisitor + { + private final Map expressionMap; + + public ExpressionRewriter(Map expressionMap) + { + this.expressionMap = ImmutableMap.copyOf(expressionMap); + } + + @Override + public RowExpression visitCall(CallExpression call, Void context) + { + RowExpression rewritten = new CallExpression( + call.getDisplayName(), + call.getFunctionHandle(), + call.getType(), + call.getArguments().stream().map(argument -> argument.accept(this, null)).collect(toImmutableList())); + if (expressionMap.containsKey(rewritten)) { + return expressionMap.get(rewritten); + } + return rewritten; + } + + @Override + public RowExpression visitInputReference(InputReferenceExpression reference, Void context) + { + return reference; + } + + @Override + public RowExpression visitConstant(ConstantExpression literal, Void context) + { + return literal; + } + + @Override + public RowExpression visitLambda(LambdaDefinitionExpression lambda, Void context) + { + return lambda; + } + + @Override + public RowExpression visitVariableReference(VariableReferenceExpression reference, Void context) + { + return reference; + } + + @Override + public RowExpression visitSpecialForm(SpecialFormExpression specialForm, Void context) + { + SpecialFormExpression rewritten = new SpecialFormExpression( + specialForm.getForm(), + specialForm.getType(), + specialForm.getArguments().stream().map(argument -> argument.accept(this, null)).collect(toImmutableList())); + if (expressionMap.containsKey(rewritten)) { + return expressionMap.get(rewritten); + } + return rewritten; + } + } + + static class CommonSubExpressionCollector + implements RowExpressionVisitor + { + private final Map> expressionsByLevel = new HashMap<>(); + private final Map> cseByLevel = new HashMap<>(); + private final Map expressionCount = new HashMap<>(); + + private int addAtLevel(int level, RowExpression expression) + { + Set rowExpressions = getExpresssionsAtLevel(level, expressionsByLevel); + expressionCount.putIfAbsent(expression, 1); + if (rowExpressions.contains(expression)) { + getExpresssionsAtLevel(level, cseByLevel).add(expression); + int count = expressionCount.get(expression) + 1; + expressionCount.put(expression, count); + } + rowExpressions.add(expression); + return level; + } + + private static Set getExpresssionsAtLevel(int level, Map> expressionsByLevel) + { + expressionsByLevel.putIfAbsent(level, new HashSet<>()); + return expressionsByLevel.get(level); + } + + @Override + public Integer visitCall(CallExpression call, Void collect) + { + if (call.getArguments().isEmpty()) { + // Do not track leaf expression + return 0; + } + return addAtLevel(call.getArguments().stream().map(argument -> argument.accept(this, collect)).reduce(Math::max).get() + 1, call); + } + + @Override + public Integer visitInputReference(InputReferenceExpression reference, Void collect) + { + return 0; + } + + @Override + public Integer visitConstant(ConstantExpression literal, Void collect) + { + return 0; + } + + @Override + public Integer visitLambda(LambdaDefinitionExpression lambda, Void collect) + { + return 0; + } + + @Override + public Integer visitVariableReference(VariableReferenceExpression reference, Void collect) + { + return 0; + } + + @Override + public Integer visitSpecialForm(SpecialFormExpression specialForm, Void collect) + { + int level = specialForm.getArguments().stream().map(argument -> argument.accept(this, null)).reduce(Math::max).get() + 1; + if (specialForm.getForm() != WHEN) { + // WHEN is part of CASE expression. We do not have a separate code generator to generate code for WHEN expression separately so do not consider them as CSE + // TODO If we detect a whole WHEN statement as CSE we should probably only keep one + addAtLevel(level, specialForm); + } + return level; + } + } +} diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java index 087d4c1f740fb..1264afea3fbea 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java @@ -91,20 +91,21 @@ public Supplier compileCursorProcessor(SqlFunctionProperties sq }; } - public Supplier compilePageProcessor(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, Optional classNameSuffix) + public Supplier compilePageProcessor(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { - return compilePageProcessor(sqlFunctionProperties, filter, projections, classNameSuffix, OptionalInt.empty()); + return compilePageProcessor(sqlFunctionProperties, filter, projections, isOptimizeCommonSubExpression, classNameSuffix, OptionalInt.empty()); } private Supplier compilePageProcessor( SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, + boolean isOptimizeCommonSubExpression, Optional classNameSuffix, OptionalInt initialBatchSize) { Optional> filterFunctionSupplier = filter.map(expression -> pageFunctionCompiler.compileFilter(sqlFunctionProperties, expression, classNameSuffix)); - List> pageProjectionSuppliers = pageFunctionCompiler.compileProjections(sqlFunctionProperties, projections, classNameSuffix); + List> pageProjectionSuppliers = pageFunctionCompiler.compileProjections(sqlFunctionProperties, projections, isOptimizeCommonSubExpression, classNameSuffix); return () -> { Optional filterFunction = filterFunctionSupplier.map(Supplier::get); @@ -115,15 +116,16 @@ private Supplier compilePageProcessor( }; } + @VisibleForTesting public Supplier compilePageProcessor(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections) { - return compilePageProcessor(sqlFunctionProperties, filter, projections, Optional.empty()); + return compilePageProcessor(sqlFunctionProperties, filter, projections, true, Optional.empty()); } @VisibleForTesting - public Supplier compilePageProcessor(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, int initialBatchSize) + public Supplier compilePageProcessor(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, boolean isOptimizeCommonSubExpression, int initialBatchSize) { - return compilePageProcessor(sqlFunctionProperties, filter, projections, Optional.empty(), OptionalInt.of(initialBatchSize)); + return compilePageProcessor(sqlFunctionProperties, filter, projections, isOptimizeCommonSubExpression, Optional.empty(), OptionalInt.of(initialBatchSize)); } private Class compile(SqlFunctionProperties sqlFunctionProperties, Optional filter, List projections, BodyCompiler bodyCompiler, Class superType) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 5065dd762bfed..96b4628109765 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -48,9 +48,9 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; +import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.gen.LambdaBytecodeGenerator.CompiledLambda; import com.facebook.presto.sql.planner.CompilerConfig; -import com.facebook.presto.sql.relational.Expressions; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; @@ -58,6 +58,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.primitives.Primitives; import org.weakref.jmx.Managed; import org.weakref.jmx.Nested; @@ -65,6 +67,7 @@ import javax.inject.Inject; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -92,14 +95,21 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.not; import static com.facebook.presto.operator.project.PageFieldsToInputParametersRewriter.rewritePageFieldsToInputParameters; import static com.facebook.presto.spi.StandardErrorCode.COMPILER_ERROR; +import static com.facebook.presto.sql.gen.BytecodeUtils.boxPrimitiveIfNecessary; import static com.facebook.presto.sql.gen.BytecodeUtils.invoke; +import static com.facebook.presto.sql.gen.BytecodeUtils.unboxPrimitiveIfNecessary; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.collectCSEByLevel; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsWithCSE; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.rewriteExpressionWithCSE; import static com.facebook.presto.sql.gen.LambdaBytecodeGenerator.generateMethodsForLambda; +import static com.facebook.presto.sql.relational.Expressions.subExpressions; import static com.facebook.presto.util.CompilerUtils.defineClass; import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; public class PageFunctionCompiler @@ -128,7 +138,7 @@ public PageFunctionCompiler(Metadata metadata, int expressionCacheSize) projectionCache = CacheBuilder.newBuilder() .recordStats() .maximumSize(expressionCacheSize) - .build(CacheLoader.from(cacheKey -> compileProjectionInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions, Optional.empty()))); + .build(CacheLoader.from(cacheKey -> compileProjectionInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions, cacheKey.isOptimizeCommonSubExpression, Optional.empty()))); projectionCacheStats = new CacheStatsMBean(projectionCache); } else { @@ -165,8 +175,26 @@ public CacheStatsMBean getFilterCache() return filterCacheStats; } - public List> compileProjections(SqlFunctionProperties sqlFunctionProperties, List projections, Optional classNameSuffix) + public List> compileProjections(SqlFunctionProperties sqlFunctionProperties, List projections, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { + if (isOptimizeCommonSubExpression) { + List projectionsWithCSE = getExpressionsWithCSE(projections); + ImmutableList.Builder> pageProjections = ImmutableList.builder(); + ImmutableList.Builder cseProjectionsOutputChannels = ImmutableList.builder(); + for (int i = 0; i < projections.size(); i++) { + RowExpression projection = projections.get(i); + if (projectionsWithCSE.contains(projection)) { + cseProjectionsOutputChannels.add(i); + } + else { + pageProjections.add(toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projection, classNameSuffix), new int[] {i})); + } + } + if (projectionsWithCSE.size() > 0) { + pageProjections.add(toPageProjectionWithOutputs(compileProjectionCached(sqlFunctionProperties, projectionsWithCSE, true, classNameSuffix), toIntArray(cseProjectionsOutputChannels.build()))); + } + return pageProjections.build(); + } return IntStream.range(0, projections.size()) .mapToObj(outputChannel -> toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projections.get(outputChannel), classNameSuffix), new int[] {outputChannel})) .collect(toImmutableList()); @@ -187,10 +215,15 @@ public Supplier compileProjection(SqlFunctionProperties sqlFunct return () -> projectionFunction; } + return compileProjectionCached(sqlFunctionProperties, ImmutableList.of(projection), false, classNameSuffix); + } + + private Supplier compileProjectionCached(SqlFunctionProperties sqlFunctionProperties, List projections, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) + { if (projectionCache == null) { - return compileProjectionInternal(sqlFunctionProperties, ImmutableList.of(projection), classNameSuffix); + return compileProjectionInternal(sqlFunctionProperties, projections, isOptimizeCommonSubExpression, classNameSuffix); } - return projectionCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(projection))); + return projectionCache.getUnchecked(new CacheKey(sqlFunctionProperties, projections, isOptimizeCommonSubExpression)); } private Supplier toPageProjectionWithOutputs(Supplier pageProjection, int[] outputChannels) @@ -198,10 +231,10 @@ private Supplier toPageProjectionWithOutputs(Supplier return () -> new PageProjectionWithOutputs(pageProjection.get(), outputChannels); } - private Supplier compileProjectionInternal(SqlFunctionProperties sqlFunctionProperties, List projections, Optional classNameSuffix) + private Supplier compileProjectionInternal(SqlFunctionProperties sqlFunctionProperties, List projections, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { requireNonNull(projections, "projections is null"); - checkArgument(projections.stream().allMatch(projection -> projection instanceof CallExpression || projection instanceof SpecialFormExpression)); + checkArgument(!projections.isEmpty() && projections.stream().allMatch(projection -> projection instanceof CallExpression || projection instanceof SpecialFormExpression)); PageFieldsToInputParametersRewriter.Result result = rewritePageFieldsToInputParameters(projections); List rewrittenExpression = result.getRewrittenExpressions(); @@ -209,7 +242,7 @@ private Supplier compileProjectionInternal(SqlFunctionProperties CallSiteBinder callSiteBinder = new CallSiteBinder(); // generate Work - ClassDefinition pageProjectionWorkDefinition = definePageProjectWorkClass(sqlFunctionProperties, rewrittenExpression, callSiteBinder, classNameSuffix); + ClassDefinition pageProjectionWorkDefinition = definePageProjectWorkClass(sqlFunctionProperties, rewrittenExpression, callSiteBinder, isOptimizeCommonSubExpression, classNameSuffix); Class pageProjectionWorkClass; try { @@ -231,7 +264,7 @@ private static ParameterizedType generateProjectionWorkClassName(Optional projections, CallSiteBinder callSiteBinder, Optional classNameSuffix) + private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunctionProperties, List projections, CallSiteBinder callSiteBinder, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { ClassDefinition classDefinition = new ClassDefinition( a(PUBLIC, FINAL), @@ -239,7 +272,7 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc type(Object.class), type(Work.class)); - FieldDefinition blockBuilderFields = classDefinition.declareField(a(PRIVATE), "blockBuilders", List.class); + FieldDefinition blockBuilderFields = classDefinition.declareField(a(PRIVATE), "blockBuilders", type(List.class, BlockBuilder.class)); FieldDefinition propertiesField = classDefinition.declareField(a(PRIVATE), "properties", SqlFunctionProperties.class); FieldDefinition pageField = classDefinition.declareField(a(PRIVATE), "page", Page.class); FieldDefinition selectedPositionsField = classDefinition.declareField(a(PRIVATE), "selectedPositions", SelectedPositions.class); @@ -255,12 +288,27 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc MethodDefinition method = classDefinition.declareMethod(a(PUBLIC), "getResult", type(Object.class), ImmutableList.of()); method.getBody().append(method.getThis().getField(resultField)).ret(Object.class); - // evaluate Map compiledLambdaMap = generateMethodsForLambda(classDefinition, callSiteBinder, cachedInstanceBinder, projections, metadata, sqlFunctionProperties, ""); - generateEvaluateMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, projections, blockBuilderFields); + + // cse + Map cseFields = ImmutableMap.of(); + if (isOptimizeCommonSubExpression) { + Map> commonSubExpressionsByLevel = collectCSEByLevel(projections); + if (!commonSubExpressionsByLevel.isEmpty()) { + cseFields = declareCommonSubExpressionFields(classDefinition, commonSubExpressionsByLevel); + generateCommonSubExpressionMethods(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, commonSubExpressionsByLevel, cseFields); + Map commonSubExpressions = commonSubExpressionsByLevel.values().stream() + .flatMap(m -> m.entrySet().stream()) + .collect(toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)); + projections = projections.stream().map(projection -> rewriteExpressionWithCSE(projection, commonSubExpressions)).collect(toImmutableList()); + } + } + + // evaluate + generateEvaluateMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, projections, blockBuilderFields, cseFields); // constructor - Parameter blockBuilders = arg("blockBuilders", List.class); + Parameter blockBuilders = arg("blockBuilders", type(List.class, BlockBuilder.class)); Parameter properties = arg("properties", SqlFunctionProperties.class); Parameter page = arg("page", Page.class); Parameter selectedPositions = arg("selectedPositions", SelectedPositions.class); @@ -273,15 +321,18 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc body.comment("super();") .append(thisVariable) .invokeConstructor(Object.class) - .append(thisVariable) - .append(invokeStatic(ImmutableList.class, "copyOf", ImmutableList.class, blockBuilders.cast(Collection.class))) - .putField(blockBuilderFields) + .append(thisVariable.setField(blockBuilderFields, invokeStatic(ImmutableList.class, "copyOf", ImmutableList.class, blockBuilders.cast(Collection.class)))) .append(thisVariable.setField(propertiesField, properties)) .append(thisVariable.setField(pageField, page)) .append(thisVariable.setField(selectedPositionsField, selectedPositions)) .append(thisVariable.setField(nextIndexOrPositionField, selectedPositions.invoke("getOffset", int.class))) .append(thisVariable.setField(resultField, constantNull(Block.class))); + cseFields.values().forEach(fields -> { + body.append(thisVariable.setField(fields.evaluatedField, constantBoolean(false))); + body.append(thisVariable.setField(fields.resultField, constantNull(fields.resultType))); + }); + cachedInstanceBinder.generateInitializations(thisVariable, body); body.ret(); @@ -350,6 +401,74 @@ private static MethodDefinition generateProcessMethod( return method; } + private List generateCommonSubExpressionMethods( + SqlFunctionProperties sqlFunctionProperties, + ClassDefinition classDefinition, + CallSiteBinder callSiteBinder, + CachedInstanceBinder cachedInstanceBinder, + Map compiledLambdaMap, + Map> commonSubExpressionsByLevel, + Map commonSubExpressionFieldsMap) + { + ImmutableList.Builder methods = ImmutableList.builder(); + + Parameter properties = arg("properties", SqlFunctionProperties.class); + Parameter page = arg("page", Page.class); + Parameter position = arg("position", int.class); + + Map cseMap = new HashMap<>(); + int startLevel = commonSubExpressionsByLevel.keySet().stream().reduce(Math::min).get(); + int maxLevel = commonSubExpressionsByLevel.keySet().stream().reduce(Math::max).get(); + for (int i = startLevel; i <= maxLevel; i++) { + if (commonSubExpressionsByLevel.containsKey(i)) { + for (Map.Entry entry : commonSubExpressionsByLevel.get(i).entrySet()) { + RowExpression cse = entry.getKey(); + Class type = Primitives.wrap(cse.getType().getJavaType()); + VariableReferenceExpression cseVariable = entry.getValue(); + CommonSubExpressionFields cseFields = commonSubExpressionFieldsMap.get(cseVariable); + MethodDefinition method = classDefinition.declareMethod( + a(PRIVATE), + "get" + cseVariable.getName(), + type(void.class), + ImmutableList.builder() + .add(properties) + .add(page) + .add(position) + .build()); + + method.comment("cse: %s", cse); + + Scope scope = method.getScope(); + BytecodeBlock body = method.getBody(); + Variable thisVariable = method.getThis(); + + declareBlockVariables(ImmutableList.of(cse), page, scope, body); + scope.declareVariable("wasNull", body, constantFalse()); + + RowExpressionCompiler cseCompiler = new RowExpressionCompiler( + classDefinition, + callSiteBinder, + cachedInstanceBinder, + new CSEFieldAndVariableReferenceCompiler(callSiteBinder, cseMap, thisVariable), + metadata, + sqlFunctionProperties, + compiledLambdaMap); + + body.append(thisVariable) + .append(cseCompiler.compile(cse, scope, Optional.empty())) + .append(boxPrimitiveIfNecessary(scope, type)) + .putField(cseFields.resultField) + .append(thisVariable.setField(cseFields.evaluatedField, constantBoolean(true))) + .ret(); + + methods.add(method); + cseMap.put(cseVariable, cseFields); + } + } + } + return methods.build(); + } + private MethodDefinition generateEvaluateMethod( SqlFunctionProperties sqlFunctionProperties, ClassDefinition classDefinition, @@ -357,7 +476,8 @@ private MethodDefinition generateEvaluateMethod( CachedInstanceBinder cachedInstanceBinder, Map compiledLambdaMap, List projections, - FieldDefinition blockBuilders) + FieldDefinition blockBuilders, + Map cseFields) { Parameter properties = arg("properties", SqlFunctionProperties.class); Parameter page = arg("page", Page.class); @@ -380,13 +500,14 @@ private MethodDefinition generateEvaluateMethod( Variable thisVariable = method.getThis(); declareBlockVariables(projections, page, scope, body); + Variable wasNull = scope.declareVariable("wasNull", body, constantFalse()); + cseFields.values().forEach(fields -> body.append(thisVariable.setField(fields.evaluatedField, constantBoolean(false)))); - scope.declareVariable("wasNull", body, constantFalse()); RowExpressionCompiler compiler = new RowExpressionCompiler( classDefinition, callSiteBinder, cachedInstanceBinder, - fieldReferenceCompiler(callSiteBinder), + new CSEFieldAndVariableReferenceCompiler(callSiteBinder, cseFields, thisVariable), metadata, sqlFunctionProperties, compiledLambdaMap); @@ -394,7 +515,9 @@ private MethodDefinition generateEvaluateMethod( Variable outputBlockVariable = scope.createTempVariable(BlockBuilder.class); for (int i = 0; i < projections.size(); i++) { body.append(outputBlockVariable.set(thisVariable.getField(blockBuilders).invoke("get", Object.class, constantInt(i)))) - .append(compiler.compile(projections.get(i), scope, Optional.of(outputBlockVariable))); + .append(compiler.compile(projections.get(i), scope, Optional.of(outputBlockVariable))) + .append(constantBoolean(false)) + .putVariable(wasNull); } body.ret(); return method; @@ -405,7 +528,7 @@ public Supplier compileFilter(SqlFunctionProperties sqlFunctionPrope if (filterCache == null) { return compileFilterInternal(sqlFunctionProperties, filter, classNameSuffix); } - return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(filter))); + return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(filter), false)); } private Supplier compileFilterInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, Optional classNameSuffix) @@ -606,10 +729,24 @@ private static void declareBlockVariables(List expressions, Param } } + private static Map declareCommonSubExpressionFields(ClassDefinition classDefinition, Map> commonSubExpressionsByLevel) + { + ImmutableMap.Builder fields = ImmutableMap.builder(); + commonSubExpressionsByLevel.values().stream().map(Map::values).flatMap(Collection::stream).forEach(variable -> { + Class type = Primitives.wrap(variable.getType().getJavaType()); + fields.put(variable, new CommonSubExpressionFields( + classDefinition.declareField(a(PRIVATE), variable.getName() + "Evaluated", boolean.class), + classDefinition.declareField(a(PRIVATE), variable.getName() + "Result", type), + type, + "get" + variable.getName())); + }); + return fields.build(); + } + private static List getInputChannels(Iterable expressions) { TreeSet channels = new TreeSet<>(); - for (RowExpression expression : Expressions.subExpressions(expressions)) { + for (RowExpression expression : subExpressions(expressions)) { if (expression instanceof InputReferenceExpression) { channels.add(((InputReferenceExpression) expression).getField()); } @@ -622,13 +759,13 @@ private static List getInputChannels(RowExpression expression) return getInputChannels(ImmutableList.of(expression)); } - private static List toBlockParameters(List inputChannels) + private static int[] toIntArray(List list) { - ImmutableList.Builder parameters = ImmutableList.builder(); - for (int channel : inputChannels) { - parameters.add(arg("block_" + channel, Block.class)); + int[] array = new int[list.size()]; + for (int i = 0; i < list.size(); i++) { + array[i] = list.get(i); } - return parameters.build(); + return array; } private static RowExpressionVisitor fieldReferenceCompiler(CallSiteBinder callSiteBinder) @@ -639,17 +776,96 @@ private static RowExpressionVisitor fieldReferenceCompiler( callSiteBinder); } + private static class CommonSubExpressionFields + { + private final FieldDefinition evaluatedField; + private final FieldDefinition resultField; + private final Class resultType; + private final String methodName; + + public CommonSubExpressionFields(FieldDefinition evaluatedField, FieldDefinition resultField, Class resultType, String methodName) + { + this.evaluatedField = evaluatedField; + this.resultField = resultField; + this.resultType = resultType; + this.methodName = methodName; + } + } + + private static class CSEFieldAndVariableReferenceCompiler + implements RowExpressionVisitor + { + private final InputReferenceCompiler inputReferenceCompiler; + private final Map variableMap; + private final Variable thisVariable; + + public CSEFieldAndVariableReferenceCompiler(CallSiteBinder callSiteBinder, Map variableMap, Variable thisVariable) + { + this.inputReferenceCompiler = new InputReferenceCompiler( + (scope, field) -> scope.getVariable("block_" + field), + (scope, field) -> scope.getVariable("position"), + callSiteBinder); + this.variableMap = ImmutableMap.copyOf(variableMap); + this.thisVariable = thisVariable; + } + @Override + public BytecodeNode visitCall(CallExpression call, Scope context) + { + throw new UnsupportedOperationException(); + } + + @Override + public BytecodeNode visitInputReference(InputReferenceExpression reference, Scope context) + { + return inputReferenceCompiler.visitInputReference(reference, context); + } + + @Override + public BytecodeNode visitConstant(ConstantExpression literal, Scope context) + { + throw new UnsupportedOperationException(); + } + + @Override + public BytecodeNode visitLambda(LambdaDefinitionExpression lambda, Scope context) + { + throw new UnsupportedOperationException(); + } + + @Override + public BytecodeNode visitVariableReference(VariableReferenceExpression reference, Scope context) + { + CommonSubExpressionFields fields = variableMap.get(reference); + IfStatement ifStatement = new IfStatement() + .condition(thisVariable.getField(fields.evaluatedField)) + .ifFalse(new BytecodeBlock() + .append(thisVariable.invoke(fields.methodName, void.class, context.getVariable("properties"), context.getVariable("page"), context.getVariable("position")))); + return new BytecodeBlock() + .append(ifStatement) + .append(thisVariable.getField(fields.resultField)) + .append(unboxPrimitiveIfNecessary(context, Primitives.wrap(reference.getType().getJavaType()))); + } + + @Override + public BytecodeNode visitSpecialForm(SpecialFormExpression specialForm, Scope context) + { + throw new UnsupportedOperationException(); + } + } + private static final class CacheKey { private final SqlFunctionProperties sqlFunctionProperties; private final List rowExpressions; + private final boolean isOptimizeCommonSubExpression; - private CacheKey(SqlFunctionProperties sqlFunctionProperties, List rowExpressions) + private CacheKey(SqlFunctionProperties sqlFunctionProperties, List rowExpressions, boolean isOptimizeCommonSubExpression) { requireNonNull(rowExpressions, "rowExpressions is null"); checkArgument(rowExpressions.size() >= 1, "Expect at least one RowExpression"); this.sqlFunctionProperties = requireNonNull(sqlFunctionProperties, "sqlFunctionProperties is null"); this.rowExpressions = ImmutableList.copyOf(rowExpressions); + this.isOptimizeCommonSubExpression = isOptimizeCommonSubExpression; } @Override @@ -663,13 +879,14 @@ public boolean equals(Object o) } CacheKey that = (CacheKey) o; return Objects.equals(sqlFunctionProperties, that.sqlFunctionProperties) && - Objects.equals(rowExpressions, that.rowExpressions); + Objects.equals(rowExpressions, that.rowExpressions) && + isOptimizeCommonSubExpression == that.isOptimizeCommonSubExpression; } @Override public int hashCode() { - return Objects.hash(sqlFunctionProperties, rowExpressions); + return Objects.hash(sqlFunctionProperties, rowExpressions, isOptimizeCommonSubExpression); } } } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java index 513bb8d070705..6e62278adf60c 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java @@ -157,7 +157,6 @@ public BytecodeNode visitCall(CallExpression call, Context context) new ConstantExpression(null, call.getType()), function), context.getOutputBlockVariable()); - default: throw new IllegalArgumentException(format("Unsupported function implementation type: %s", functionMetadata.getImplementationType())); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 2834b247392db..13e704b1308bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -230,6 +230,7 @@ import static com.facebook.presto.SystemSessionProperties.getTaskPartitionedWriterCount; import static com.facebook.presto.SystemSessionProperties.getTaskWriterCount; import static com.facebook.presto.SystemSessionProperties.isExchangeCompressionEnabled; +import static com.facebook.presto.SystemSessionProperties.isOptimizeCommonSubExpressions; import static com.facebook.presto.SystemSessionProperties.isOptimizedRepartitioningEnabled; import static com.facebook.presto.SystemSessionProperties.isSpillEnabled; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; @@ -1281,7 +1282,7 @@ private PhysicalOperation visitScanFilterAndProject( try { if (columns != null) { Supplier cursorProcessor = expressionCompiler.compileCursorProcessor(session.getSqlFunctionProperties(), filterExpression, projections, sourceNode.getId()); - Supplier pageProcessor = expressionCompiler.compilePageProcessor(session.getSqlFunctionProperties(), filterExpression, projections, Optional.of(context.getStageExecutionId() + "_" + planNodeId)); + Supplier pageProcessor = expressionCompiler.compilePageProcessor(session.getSqlFunctionProperties(), filterExpression, projections, isOptimizeCommonSubExpressions(session), Optional.of(context.getStageExecutionId() + "_" + planNodeId)); SourceOperatorFactory operatorFactory = new ScanFilterAndProjectOperatorFactory( context.getNextOperatorId(), @@ -1299,7 +1300,7 @@ private PhysicalOperation visitScanFilterAndProject( return new PhysicalOperation(operatorFactory, outputMappings, context, stageExecutionDescriptor.isScanGroupedExecution(sourceNode.getId()) ? GROUPED_EXECUTION : UNGROUPED_EXECUTION); } else { - Supplier pageProcessor = expressionCompiler.compilePageProcessor(session.getSqlFunctionProperties(), filterExpression, projections, Optional.of(context.getStageExecutionId() + "_" + planNodeId)); + Supplier pageProcessor = expressionCompiler.compilePageProcessor(session.getSqlFunctionProperties(), filterExpression, projections, isOptimizeCommonSubExpressions(session), Optional.of(context.getStageExecutionId() + "_" + planNodeId)); OperatorFactory operatorFactory = new FilterAndProjectOperator.FilterAndProjectOperatorFactory( context.getNextOperatorId(), diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java index 943e6e1b918b2..0048fc2566edc 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java @@ -162,6 +162,11 @@ public VariableReferenceExpression toVariableReference(Expression expression) } public VariableReferenceExpression newVariable(RowExpression expression) + { + return newVariable(expression, null); + } + + public VariableReferenceExpression newVariable(RowExpression expression, String suffix) { String nameHint = "expr"; if (expression instanceof VariableReferenceExpression) { @@ -170,6 +175,6 @@ public VariableReferenceExpression newVariable(RowExpression expression) else if (expression instanceof CallExpression) { nameHint = ((CallExpression) expression).getDisplayName(); } - return newVariable(nameHint, expression.getType(), null); + return newVariable(nameHint, expression.getType(), suffix); } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java index 44cd02daea99a..bd89ab52fcc78 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java @@ -81,6 +81,6 @@ private static Page createPage(List types, boolean dictionary) private PageProcessor newPageProcessor() { return new ExpressionCompiler(metadata, new PageFunctionCompiler(metadata, 0)) - .compilePageProcessor(SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, types.get(0)), field(1, types.get(1))), MAX_BATCH_SIZE).get(); + .compilePageProcessor(SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, types.get(0)), field(1, types.get(1))), false, MAX_BATCH_SIZE).get(); } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java index 24282ad01a99a..816e75e7988af 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java @@ -337,7 +337,7 @@ public void testPageYield() projections.add(call("generic_long_page_col", functionManager.lookupFunction("generic_long_page_col" + i, fromTypes(BIGINT)), BIGINT, field(0, BIGINT))); } Supplier cursorProcessor = expressionCompiler.compileCursorProcessor(driverContext.getSession().getSqlFunctionProperties(), Optional.empty(), projections.build(), "key"); - Supplier pageProcessor = expressionCompiler.compilePageProcessor(driverContext.getSession().getSqlFunctionProperties(), Optional.empty(), projections.build(), MAX_BATCH_SIZE); + Supplier pageProcessor = expressionCompiler.compilePageProcessor(driverContext.getSession().getSqlFunctionProperties(), Optional.empty(), projections.build(), false, MAX_BATCH_SIZE); ScanFilterAndProjectOperator.ScanFilterAndProjectOperatorFactory factory = new ScanFilterAndProjectOperator.ScanFilterAndProjectOperatorFactory( 0, diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java index fe6e210cb2d90..6d20a8d70fb2b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java @@ -95,7 +95,7 @@ public void testNoCaching() @Test public void testSanityRLE() { - PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, BIGINT), field(1, VARCHAR)), MAX_BATCH_SIZE).get(); + PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, BIGINT), field(1, VARCHAR)), false, MAX_BATCH_SIZE).get(); Slice varcharValue = Slices.utf8Slice("hello"); Page page = new Page(RunLengthEncodedBlock.create(BIGINT, 123L, 100), RunLengthEncodedBlock.create(VARCHAR, varcharValue, 100)); @@ -127,7 +127,7 @@ public void testSanityFilterOnDictionary() FunctionHandle lessThan = functionManager.resolveOperator(LESS_THAN, fromTypes(BIGINT, BIGINT)); CallExpression filter = new CallExpression(LESS_THAN.name(), lessThan, BOOLEAN, ImmutableList.of(lengthVarchar, constant(10L, BIGINT))); - PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.of(filter), ImmutableList.of(field(0, VARCHAR)), MAX_BATCH_SIZE).get(); + PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.of(filter), ImmutableList.of(field(0, VARCHAR)), false, MAX_BATCH_SIZE).get(); Page page = new Page(createDictionaryBlock(createExpectedValues(10), 100)); Page outputPage = getOnlyElement( @@ -166,7 +166,7 @@ public void testSanityFilterOnRLE() FunctionHandle lessThan = functionManager.resolveOperator(LESS_THAN, fromTypes(BIGINT, BIGINT)); CallExpression filter = new CallExpression(LESS_THAN.name(), lessThan, BOOLEAN, ImmutableList.of(field(0, BIGINT), constant(10L, BIGINT))); - PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.of(filter), ImmutableList.of(field(0, BIGINT)), MAX_BATCH_SIZE).get(); + PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.of(filter), ImmutableList.of(field(0, BIGINT)), false, MAX_BATCH_SIZE).get(); Page page = new Page(createRLEBlock(5L, 100)); Page outputPage = getOnlyElement( @@ -187,7 +187,7 @@ public void testSanityFilterOnRLE() @Test public void testSanityColumnarDictionary() { - PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, VARCHAR)), MAX_BATCH_SIZE).get(); + PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(field(0, VARCHAR)), false, MAX_BATCH_SIZE).get(); Page page = new Page(createDictionaryBlock(createExpectedValues(10), 100)); Page outputPage = getOnlyElement( @@ -215,7 +215,7 @@ public void testNonDeterministicProject() InputReferenceExpression col0 = field(0, BIGINT); CallExpression lessThanRandomExpression = new CallExpression(LESS_THAN.name(), lessThan, BOOLEAN, ImmutableList.of(col0, random)); - PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(lessThanRandomExpression), MAX_BATCH_SIZE).get(); + PageProcessor processor = compiler.compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.empty(), ImmutableList.of(lessThanRandomExpression), false, MAX_BATCH_SIZE).get(); assertFalse(new RowExpressionDeterminismEvaluator(metadataManager.getFunctionManager()).isDeterministic(lessThanRandomExpression)); diff --git a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestFeaturesConfig.java b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestFeaturesConfig.java index 5a5e2fa7967bb..0a4a32455e393 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestFeaturesConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestFeaturesConfig.java @@ -131,7 +131,8 @@ public void testDefaults() .setListBuiltInFunctionsOnly(true) .setPartitioningPrecisionStrategy(PartitioningPrecisionStrategy.AUTOMATIC) .setExperimentalFunctionsEnabled(false) - .setUseLegacyScheduler(true)); + .setUseLegacyScheduler(true) + .setOptimizeCommonSubExpressions(true)); } @Test @@ -219,6 +220,7 @@ public void testExplicitPropertyMappings() .put("partitioning-precision-strategy", "PREFER_EXACT_PARTITIONING") .put("experimental-functions-enabled", "true") .put("use-legacy-scheduler", "false") + .put("optimize-common-sub-expressions", "false") .build(); FeaturesConfig expected = new FeaturesConfig() @@ -302,7 +304,8 @@ public void testExplicitPropertyMappings() .setListBuiltInFunctionsOnly(false) .setPartitioningPrecisionStrategy(PartitioningPrecisionStrategy.PREFER_EXACT_PARTITIONING) .setExperimentalFunctionsEnabled(true) - .setUseLegacyScheduler(false); + .setUseLegacyScheduler(false) + .setOptimizeCommonSubExpressions(false); assertFullMapping(properties, expected); } diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java new file mode 100644 index 0000000000000..9e7692ae858c7 --- /dev/null +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java @@ -0,0 +1,124 @@ +/* + * 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 com.facebook.presto.sql.gen; + +import com.facebook.presto.Session; +import com.facebook.presto.execution.warnings.WarningCollector; +import com.facebook.presto.metadata.Metadata; +import com.facebook.presto.metadata.MetadataManager; +import com.facebook.presto.spi.relation.RowExpression; +import com.facebook.presto.spi.relation.VariableReferenceExpression; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.sql.parser.SqlParser; +import com.facebook.presto.sql.planner.TypeProvider; +import com.facebook.presto.sql.relational.SqlToRowExpressionTranslator; +import com.facebook.presto.sql.tree.Expression; +import com.facebook.presto.sql.tree.NodeRef; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.Test; + +import java.util.List; +import java.util.Map; + +import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; +import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.collectCSEByLevel; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsWithCSE; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.rewriteExpressionWithCSE; +import static org.testng.Assert.assertEquals; + +public class TestCommonSubExpressionRewritter +{ + private static final Session SESSION = TEST_SESSION; + private static final Metadata METADATA = MetadataManager.createTestMetadataManager(); + private static final TypeProvider TYPES = TypeProvider.viewOf( + ImmutableMap.builder() + .put("x", BIGINT) + .put("y", BIGINT) + .put("z", BIGINT) + .put("add$cse", BIGINT) + .put("multiply$cse", BIGINT) + .put("add$cse_0", BIGINT).build()); + + @Test + void testGetExpressionsWithCSE() + { + List expressions = ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2"), rowExpression("x + 2")); + List expressionsWithCSE = getExpressionsWithCSE(expressions); + assertEquals(expressionsWithCSE, ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2"))); + } + + @Test + void testCollectCSEByLevel() + { + List expressions = ImmutableList.of(rowExpression("x * 2 + y + z"), rowExpression("(x * 2 + y + 1) * 2"), rowExpression("(x * 2) + (x * 2 + y + z)")); + Map> cseByLevel = collectCSEByLevel(expressions); + assertEquals(cseByLevel, ImmutableMap.of( + 3, ImmutableMap.of(rowExpression("\"add$cse\" + z"), rowExpression("\"add$cse_0\"")), + 2, ImmutableMap.of(rowExpression("\"multiply$cse\" + y"), rowExpression("\"add$cse\"")), + 1, ImmutableMap.of(rowExpression("x * 2"), rowExpression("\"multiply$cse\"")))); + } + + @Test + void testNoRedundantCSE() + { + List expressions = ImmutableList.of(rowExpression("x * 2 + y + z"), rowExpression("(x * 2 + y + z) * 2"), rowExpression("x * 2")); + Map> cseByLevel = collectCSEByLevel(expressions); + // x * 2 + y is redundant thus should not appear in results + assertEquals(cseByLevel, ImmutableMap.of( + 3, ImmutableMap.of(rowExpression("\"multiply$cse\" + y + z"), rowExpression("\"add$cse\"")), + 1, ImmutableMap.of(rowExpression("x * 2"), rowExpression("\"multiply$cse\"")))); + } + + @Test + void testRewriteExpressionWithCSE() + { + assertEquals( + rewriteExpressionWithCSE( + rowExpression("(x * y + z) * (y + z) + (x * y)"), + ImmutableMap.of( + rowExpression("x * y"), variable("multiply$cse"), + rowExpression("y + z"), variable("add$cse"), + rowExpression("\"multiply$cse\" + z"), variable("add$cse_0"))), + rowExpression("\"add$cse_0\" * \"add$cse\" + \"multiply$cse\"")); + } + + private VariableReferenceExpression variable(String variable) + { + return new VariableReferenceExpression(variable, TYPES.allTypes().get(variable)); + } + + private RowExpression rowExpression(String sql) + { + Expression expression = rewriteIdentifiersToSymbolReferences(new SqlParser().createExpression(sql)); + Map, Type> expressionTypes = getExpressionTypes( + SESSION, + METADATA, + new SqlParser(), + TYPES, + expression, + ImmutableList.of(), + WarningCollector.NOOP); + return SqlToRowExpressionTranslator.translate( + expression, + expressionTypes, + ImmutableMap.of(), + METADATA.getFunctionManager(), + METADATA.getTypeManager(), + SESSION); + } +} diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index 8742be114dbf2..c12288bd10021 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -13,15 +13,18 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.operator.project.PageProjection; +import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.relation.CallExpression; +import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import java.util.List; @@ -45,13 +48,34 @@ public class TestPageFunctionCompiler { + private static final FunctionManager FUNCTION_MANAGER = createTestMetadataManager().getFunctionManager(); + private static final CallExpression ADD_10_EXPRESSION = call( ADD.name(), - createTestMetadataManager().getFunctionManager().resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), + FUNCTION_MANAGER.resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), BIGINT, field(0, BIGINT), constant(10L, BIGINT)); + private static final CallExpression ADD_X_Y = call( + ADD.name(), + FUNCTION_MANAGER.resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), + BIGINT, + field(0, BIGINT), + field(1, BIGINT)); + + private static final CallExpression ADD_X_Y_Z = call( + ADD.name(), + FUNCTION_MANAGER.resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), + BIGINT, + call( + ADD.name(), + FUNCTION_MANAGER.resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), + BIGINT, + field(0, BIGINT), + field(1, BIGINT)), + field(2, BIGINT)); + @Test public void testFailureDoesNotCorruptFutureResults() { @@ -61,12 +85,12 @@ public void testFailureDoesNotCorruptFutureResults() PageProjection projection = projectionSupplier.get(); // process good page and verify we got the expected number of result rows - Page goodPage = createLongBlockPage(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); - Block goodResult = project(projection, goodPage, SelectedPositions.positionsRange(0, goodPage.getPositionCount())); + Page goodPage = createLongBlockPage(1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + Block goodResult = project(projection, goodPage, SelectedPositions.positionsRange(0, goodPage.getPositionCount())).get(0); assertEquals(goodPage.getPositionCount(), goodResult.getPositionCount()); // addition will throw due to integer overflow - Page badPage = createLongBlockPage(0, 1, 2, 3, 4, Long.MAX_VALUE); + Page badPage = createLongBlockPage(1, 0, 1, 2, 3, 4, Long.MAX_VALUE); try { project(projection, badPage, SelectedPositions.positionsRange(0, 100)); fail("expected exception"); @@ -77,7 +101,7 @@ public void testFailureDoesNotCorruptFutureResults() // running the good page should still work // if block builder in generated code was not reset properly, we could get junk results after the failure - goodResult = project(projection, goodPage, SelectedPositions.positionsRange(0, goodPage.getPositionCount())); + goodResult = project(projection, goodPage, SelectedPositions.positionsRange(0, goodPage.getPositionCount())).get(0); assertEquals(goodPage.getPositionCount(), goodResult.getPositionCount()); } @@ -91,7 +115,7 @@ public void testGeneratedClassName() String classSuffix = stageId + "_" + planNodeId; Supplier projectionSupplier = functionCompiler.compileProjection(SESSION.getSqlFunctionProperties(), ADD_10_EXPRESSION, Optional.of(classSuffix)); PageProjection projection = projectionSupplier.get(); - Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), createLongBlockPage(0), SelectedPositions.positionsRange(0, 1)); + Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), createLongBlockPage(1, 0), SelectedPositions.positionsRange(0, 1)); // class name should look like PageProjectionOutput_20170707_223500_67496_zguwn_2_7_XX assertTrue(work.getClass().getSimpleName().startsWith("PageProjectionWork_" + stageId.replace('.', '_') + "_" + planNodeId)); } @@ -128,19 +152,52 @@ public void testCache() noCacheCompiler.compileProjection(SESSION.getSqlFunctionProperties(), ADD_10_EXPRESSION, Optional.of("hint2"))); } - private Block project(PageProjection projection, Page page, SelectedPositions selectedPositions) + @Test + public void testCommonSubExpression() + { + PageFunctionCompiler functionCompiler = new PageFunctionCompiler(createTestMetadataManager(), 0); + + List> pageProjectionsCSE = functionCompiler.compileProjections(SESSION.getSqlFunctionProperties(), ImmutableList.of(ADD_X_Y, ADD_X_Y_Z), true, Optional.empty()); + assertEquals(pageProjectionsCSE.size(), 1); + List> pageProjectionsNoCSE = functionCompiler.compileProjections(SESSION.getSqlFunctionProperties(), ImmutableList.of(ADD_X_Y, ADD_X_Y_Z), false, Optional.empty()); + assertEquals(pageProjectionsNoCSE.size(), 2); + + Page input = createLongBlockPage(3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + List cseResult = project(pageProjectionsCSE.get(0).get().getPageProjection(), input, SelectedPositions.positionsRange(0, input.getPositionCount())); + assertEquals(cseResult.size(), 2); + List noCseResult1 = project(pageProjectionsNoCSE.get(0).get().getPageProjection(), input, SelectedPositions.positionsRange(0, input.getPositionCount())); + assertEquals(noCseResult1.size(), 1); + List noCseResult2 = project(pageProjectionsNoCSE.get(1).get().getPageProjection(), input, SelectedPositions.positionsRange(0, input.getPositionCount())); + assertEquals(noCseResult2.size(), 1); + checkBlockEqual(cseResult.get(0), noCseResult1.get(0)); + checkBlockEqual(cseResult.get(1), noCseResult2.get(0)); + } + + private void checkBlockEqual(Block a, Block b) + { + assertEquals(a.getPositionCount(), b.getPositionCount()); + for (int i = 0; i < a.getPositionCount(); i++) { + assertEquals(a.getLong(i), b.getLong(i)); + } + } + + private List project(PageProjection projection, Page page, SelectedPositions selectedPositions) { Work> work = projection.project(SESSION.getSqlFunctionProperties(), new DriverYieldSignal(), page, selectedPositions); assertTrue(work.process()); - return work.getResult().get(0); + return work.getResult(); } - private static Page createLongBlockPage(long... values) + private static Page createLongBlockPage(int blockCount, long... values) { - BlockBuilder builder = BIGINT.createFixedSizeBlockBuilder(values.length); - for (long value : values) { - BIGINT.writeLong(builder, value); + Block[] blocks = new Block[blockCount]; + for (int i = 0; i < blockCount; i++) { + BlockBuilder builder = BIGINT.createFixedSizeBlockBuilder(values.length); + for (long value : values) { + BIGINT.writeLong(builder, value); + } + blocks[i] = builder.build(); } - return new Page(builder.build()); + return new Page(blocks); } } From b6659dac0d67ff8dc80561b97fb0794a9a7eb0f8 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Tue, 14 Apr 2020 11:33:27 -0700 Subject: [PATCH 043/129] Performance benchmark for common sub expression projection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Benchmark (dictionaryBlocks) (functionType) (optimizeCommonSubExpression) Mode Cnt Score Error Units CommonSubExpressionBenchmark.compute true json true avgt 20 9633.238 ± 395.197 ns/op CommonSubExpressionBenchmark.compute true json false avgt 20 10515.592 ± 409.112 ns/op CommonSubExpressionBenchmark.compute true bigint true avgt 20 4345.824 ± 224.361 ns/op CommonSubExpressionBenchmark.compute true bigint false avgt 20 4989.348 ± 178.232 ns/op CommonSubExpressionBenchmark.compute true varchar true avgt 20 4335.683 ± 142.163 ns/op CommonSubExpressionBenchmark.compute true varchar false avgt 20 5079.818 ± 226.231 ns/op CommonSubExpressionBenchmark.compute false json true avgt 20 1306270.790 ± 45640.515 ns/op CommonSubExpressionBenchmark.compute false json false avgt 20 1757459.750 ± 89664.951 ns/op CommonSubExpressionBenchmark.compute false bigint true avgt 20 11733.285 ± 621.099 ns/op CommonSubExpressionBenchmark.compute false bigint false avgt 20 12266.889 ± 408.858 ns/op CommonSubExpressionBenchmark.compute false varchar true avgt 20 101828.239 ± 2372.572 ns/op CommonSubExpressionBenchmark.compute false varchar false avgt 20 133340.871 ± 4959.539 ns/op --- .../sql/gen/CommonSubExpressionBenchmark.java | 223 ++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java new file mode 100644 index 0000000000000..a05fd56319cb7 --- /dev/null +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java @@ -0,0 +1,223 @@ +/* + * 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 com.facebook.presto.sql.gen; + +import com.facebook.presto.SequencePageBuilder; +import com.facebook.presto.Session; +import com.facebook.presto.execution.warnings.WarningCollector; +import com.facebook.presto.metadata.Metadata; +import com.facebook.presto.metadata.MetadataManager; +import com.facebook.presto.operator.DriverYieldSignal; +import com.facebook.presto.operator.project.PageProcessor; +import com.facebook.presto.spi.Page; +import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.spi.block.DictionaryBlock; +import com.facebook.presto.spi.relation.RowExpression; +import com.facebook.presto.spi.relation.VariableReferenceExpression; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.sql.parser.SqlParser; +import com.facebook.presto.sql.planner.TypeProvider; +import com.facebook.presto.sql.relational.RowExpressionOptimizer; +import com.facebook.presto.sql.relational.SqlToRowExpressionTranslator; +import com.facebook.presto.sql.tree.Expression; +import com.facebook.presto.sql.tree.NodeRef; +import com.facebook.presto.testing.TestingSession; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.RunnerException; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; +import org.openjdk.jmh.runner.options.VerboseMode; + +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.concurrent.TimeUnit; + +import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; +import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; +import static com.facebook.presto.operator.scalar.FunctionAssertions.createExpression; +import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; +import static java.util.Collections.emptyList; +import static java.util.Locale.ENGLISH; + +@State(Scope.Thread) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@Fork(2) +@Warmup(iterations = 10) +@Measurement(iterations = 10) +@BenchmarkMode(Mode.AverageTime) +public class CommonSubExpressionBenchmark +{ + private static final Map TYPE_MAP = ImmutableMap.of("bigint", BIGINT, "varchar", VARCHAR, "json", VARCHAR); + private static final SqlParser SQL_PARSER = new SqlParser(); + private static final Metadata METADATA = createTestMetadataManager(); + private static final Session TEST_SESSION = TestingSession.testSessionBuilder().build(); + private static final int POSITIONS = 1024; + + private PageProcessor pageProcessor; + private Page inputPage; + private Map symbolTypes; + private Map sourceLayout; + + @Param({"json", "bigint", "varchar"}) + String functionType; + + @Param({"true", "false"}) + boolean optimizeCommonSubExpression; + + @Param({"true", "false"}) + boolean dictionaryBlocks; + + @Setup + public void setup() + { + Type type = TYPE_MAP.get(this.functionType); + + VariableReferenceExpression variable = new VariableReferenceExpression(type.getDisplayName().toLowerCase(ENGLISH) + "0", type); + symbolTypes = ImmutableMap.of(variable.getName(), type); + sourceLayout = ImmutableMap.of(variable, 0); + inputPage = createPage(functionType, dictionaryBlocks); + + List projections = getProjections(this.functionType); + + MetadataManager metadata = createTestMetadataManager(); + PageFunctionCompiler pageFunctionCompiler = new PageFunctionCompiler(metadata, 0); + pageProcessor = new ExpressionCompiler(metadata, pageFunctionCompiler).compilePageProcessor(TEST_SESSION.getSqlFunctionProperties(), Optional.of(getFilter(functionType)), projections, optimizeCommonSubExpression, Optional.empty()).get(); + } + + @Benchmark + public List> compute() + { + return ImmutableList.copyOf( + pageProcessor.process( + null, + new DriverYieldSignal(), + newSimpleAggregatedMemoryContext().newLocalMemoryContext(PageProcessor.class.getSimpleName()), + inputPage)); + } + + private RowExpression getFilter(String functionType) + { + if (functionType.equals("varchar")) { + return rowExpression("cast(varchar0 as bigint) % 2 = 0"); + } + if (functionType.equals("bigint")) { + return rowExpression("bigint0 % 2 = 0"); + } + if (functionType.equals("json")) { + return rowExpression("rand() < 0.5"); + } + throw new IllegalArgumentException("filter not supported for type : " + functionType); + } + + private List getProjections(String functionType) + { + ImmutableList.Builder builder = ImmutableList.builder(); + if (functionType.equals("bigint")) { + return ImmutableList.of(rowExpression("bigint0 + bigint0"), rowExpression("bigint0 + bigint0 + 5")); + } + else if (functionType.equals("varchar")) { + return ImmutableList.of(rowExpression("concat(varchar0, varchar0)"), rowExpression("concat(concat(varchar0, varchar0), 'foo')")); + } + else if (functionType.equals("json")) { + return ImmutableList.of(rowExpression("json_extract(json_parse(varchar0), '$.a')"), rowExpression("json_extract(json_parse(varchar0), '$.b')")); + } + throw new IllegalArgumentException(); + } + + private RowExpression rowExpression(String value) + { + Expression expression = createExpression(value, METADATA, TypeProvider.copyOf(symbolTypes)); + + Map, Type> expressionTypes = getExpressionTypes(TEST_SESSION, METADATA, SQL_PARSER, TypeProvider.copyOf(symbolTypes), expression, emptyList(), WarningCollector.NOOP); + RowExpression rowExpression = SqlToRowExpressionTranslator.translate(expression, expressionTypes, sourceLayout, METADATA.getFunctionManager(), METADATA.getTypeManager(), TEST_SESSION); + RowExpressionOptimizer optimizer = new RowExpressionOptimizer(METADATA); + return optimizer.optimize(rowExpression, OPTIMIZED, TEST_SESSION.toConnectorSession()); + } + + private static Page createPage(String functionType, boolean dictionary) + { + List types = ImmutableList.of(TYPE_MAP.get(functionType)); + switch (functionType) { + case "bigint": + case "varchar": + if (dictionary) { + return SequencePageBuilder.createSequencePageWithDictionaryBlocks(types, POSITIONS); + } + else { + return SequencePageBuilder.createSequencePage(types, POSITIONS); + } + case "json": + if (dictionary) { + return createDictionaryStringJsonPage(); + } + else { + return createStringJsonPage(); + } + default: + throw new IllegalArgumentException(); + } + } + + private static Page createStringJsonPage() + { + BlockBuilder builder = VARCHAR.createBlockBuilder(null, POSITIONS); + + for (int i = 0; i < POSITIONS; i++) { + VARCHAR.writeString(builder, "{\"a\": 1, \"b\": 2}"); + } + return new Page(builder.build()); + } + + private static Page createDictionaryStringJsonPage() + { + int dictionarySize = POSITIONS / 5; + BlockBuilder builder = VARCHAR.createBlockBuilder(null, dictionarySize); + for (int i = 0; i < dictionarySize; i++) { + VARCHAR.writeString(builder, "{\"a\": 1, \"b\": 2}"); + } + int[] ids = new int[POSITIONS]; + for (int i = 0; i < POSITIONS; i++) { + ids[i] = i % dictionarySize; + } + return new Page(new DictionaryBlock(builder.build(), ids)); + } + + public static void main(String[] args) + throws RunnerException + { + Options options = new OptionsBuilder() + .verbosity(VerboseMode.NORMAL) + .include(".*" + CommonSubExpressionBenchmark.class.getSimpleName() + ".*") + .build(); + + new Runner(options).run(); + } +} From ecfe63ece55cf63e49cd9da00bdd55c691faf77b Mon Sep 17 00:00:00 2001 From: Leiqing Cai Date: Sun, 12 Apr 2020 16:55:16 -0700 Subject: [PATCH 044/129] Unify QualifiedName to QualifiedFunctionName conversion --- .../presto/execution/AlterFunctionTask.java | 3 +- .../presto/execution/CreateFunctionTask.java | 3 +- .../presto/execution/DropFunctionTask.java | 4 +-- .../presto/metadata/FunctionManager.java | 31 ++++++++----------- .../sql/analyzer/ExpressionAnalyzer.java | 3 +- .../sql/planner/ExpressionInterpreter.java | 6 +++- .../SqlToRowExpressionTranslator.java | 3 +- .../presto/metadata/TestFunctionManager.java | 20 ++---------- .../AbstractTestAggregationFunction.java | 3 +- .../iterative/rule/TestReorderJoins.java | 3 +- .../iterative/rule/test/PlanBuilder.java | 6 +++- .../presto/tests/TestSqlFunctions.java | 6 ++++ 12 files changed, 45 insertions(+), 46 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java index 4cd1da9fe9331..dc67e67d84260 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.util.concurrent.Futures.immediateFuture; import static java.util.Objects.requireNonNull; @@ -64,7 +65,7 @@ public ListenableFuture execute(AlterFunction statement, TransactionManager t Analyzer analyzer = new Analyzer(stateMachine.getSession(), metadata, sqlParser, accessControl, Optional.empty(), parameters, stateMachine.getWarningCollector()); analyzer.analyze(statement); - QualifiedFunctionName functionName = QualifiedFunctionName.of(statement.getFunctionName().toString()); + QualifiedFunctionName functionName = qualifyFunctionName(statement.getFunctionName()); AlterRoutineCharacteristics alterRoutineCharacteristics = new AlterRoutineCharacteristics( statement.getCharacteristics().getNullCallClause() .map(com.facebook.presto.sql.tree.RoutineCharacteristics.NullCallClause::name) diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java index 297b005f96c33..c686c3359e587 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.SqlFormatter.formatSql; @@ -82,7 +83,7 @@ public ListenableFuture execute(CreateFunction statement, TransactionManager private SqlInvokedFunction createSqlInvokedFunction(CreateFunction statement) { - QualifiedFunctionName functionName = QualifiedFunctionName.of(statement.getFunctionName().toString()); + QualifiedFunctionName functionName = qualifyFunctionName(statement.getFunctionName()); List parameters = statement.getParameters().stream() .map(parameter -> new SqlParameter(parameter.getName().toString().toLowerCase(ENGLISH), parseTypeSignature(parameter.getType()))) .collect(toImmutableList()); diff --git a/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java index 566bf6b2fb4e4..9561520f17e2b 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java @@ -15,7 +15,6 @@ import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.parser.SqlParser; @@ -29,6 +28,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.util.concurrent.Futures.immediateFuture; import static java.util.Objects.requireNonNull; @@ -63,7 +63,7 @@ public ListenableFuture execute(DropFunction statement, TransactionManager tr analyzer.analyze(statement); metadata.getFunctionManager().dropFunction( - QualifiedFunctionName.of(statement.getFunctionName().toString()), + qualifyFunctionName(statement.getFunctionName()), statement.getParameterTypes().map(types -> types.stream().map(TypeSignature::parseTypeSignature).collect(toImmutableList())), statement.isExists()); return immediateFuture(null); diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java index 4b77da433dce1..fd91792accb94 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java @@ -229,6 +229,17 @@ else if (!exists) { } } + public static QualifiedFunctionName qualifyFunctionName(QualifiedName name) + { + if (!name.getPrefix().isPresent()) { + return QualifiedFunctionName.of(DEFAULT_NAMESPACE, name.getSuffix()); + } + if (name.getOriginalParts().size() != 3) { + throw new PrestoException(FUNCTION_NOT_FOUND, format("Non-builtin functions must be referenced by 'catalog.schema.function_name', found: %s", name)); + } + return QualifiedFunctionName.of(new CatalogSchemaName(name.getOriginalParts().get(0), name.getOriginalParts().get(1)), name.getOriginalParts().get(2)); + } + /** * Resolves a function using implicit type coercions. We enforce explicit naming for dynamic function namespaces. * All unqualified function names will only be resolved against the built-in static function namespace. While it is @@ -237,22 +248,6 @@ else if (!exists) { * * @throws PrestoException if there are no matches or multiple matches */ - public FunctionHandle resolveFunction(Optional transactionId, QualifiedName name, List parameterTypes) - { - QualifiedFunctionName functionName; - if (!name.getPrefix().isPresent()) { - functionName = QualifiedFunctionName.of(DEFAULT_NAMESPACE, name.getSuffix()); - } - else { - if (name.getOriginalParts().size() != 3) { - throw new PrestoException(FUNCTION_NOT_FOUND, format("Non-builtin functions must be reference by three parts: catalog.schema.function_name, found: %s", name.toString())); - } - functionName = QualifiedFunctionName.of(new CatalogSchemaName(name.getOriginalParts().get(0), name.getOriginalParts().get(1)), name.getOriginalParts().get(2)); - } - - return resolveFunction(transactionId, functionName, parameterTypes); - } - public FunctionHandle resolveFunction(Optional transactionId, QualifiedFunctionName functionName, List parameterTypes) { if (functionName.getFunctionNamespace().equals(DEFAULT_NAMESPACE) && parameterTypes.stream().noneMatch(TypeSignatureProvider::hasDependency)) { @@ -371,14 +366,14 @@ public FunctionHandle resolveOperator(OperatorType operatorType, List parameterTypes) { - QualifiedFunctionName functionName = QualifiedFunctionName.of(DEFAULT_NAMESPACE, name); + QualifiedFunctionName functionName = qualifyFunctionName(QualifiedName.of(name)); if (parameterTypes.stream().noneMatch(TypeSignatureProvider::hasDependency)) { return lookupCachedFunction(functionName, parameterTypes); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java index 7831d8df30b9c..f5e588d019d42 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java @@ -116,6 +116,7 @@ import java.util.function.Function; import static com.facebook.presto.metadata.CastType.CAST; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; @@ -1455,7 +1456,7 @@ public List getFunctionInputTypes() public static FunctionHandle resolveFunction(Optional transactionId, FunctionCall node, List argumentTypes, FunctionManager functionManager) { try { - return functionManager.resolveFunction(transactionId, node.getName(), argumentTypes); + return functionManager.resolveFunction(transactionId, qualifyFunctionName(node.getName()), argumentTypes); } catch (PrestoException e) { if (e.getErrorCode().getCode() == StandardErrorCode.FUNCTION_NOT_FOUND.toErrorCode().getCode()) { diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java index 1988576c168c6..6402d25b5b29e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java @@ -116,6 +116,7 @@ import static com.facebook.presto.SystemSessionProperties.isLegacyRowFieldOrdinalAccessEnabled; import static com.facebook.presto.metadata.CastType.CAST; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; @@ -900,7 +901,10 @@ protected Object visitFunctionCall(FunctionCall node, Object context) argumentValues.add(value); argumentTypes.add(type); } - FunctionHandle functionHandle = metadata.getFunctionManager().resolveFunction(session.getTransactionId(), node.getName(), fromTypes(argumentTypes)); + FunctionHandle functionHandle = metadata.getFunctionManager().resolveFunction( + session.getTransactionId(), + qualifyFunctionName(node.getName()), + fromTypes(argumentTypes)); FunctionMetadata functionMetadata = metadata.getFunctionManager().getFunctionMetadata(functionHandle); if (!functionMetadata.isCalledOnNullInput()) { for (int i = 0; i < argumentValues.size(); i++) { diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java index a9175340d82dd..eeeac390bba7e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java @@ -92,6 +92,7 @@ import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.TRY_CAST; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.function.OperatorType.BETWEEN; import static com.facebook.presto.spi.function.OperatorType.NEGATION; import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; @@ -405,7 +406,7 @@ protected RowExpression visitFunctionCall(FunctionCall node, Void context) .map(TypeSignatureProvider::new) .collect(toImmutableList()); - return call(node.getName().toString(), functionManager.resolveFunction(transactionId, node.getName(), argumentTypes), getType(node), arguments); + return call(node.getName().toString(), functionManager.resolveFunction(transactionId, qualifyFunctionName(node.getName()), argumentTypes), getType(node), arguments); } @Override diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java index 4062e69b73264..986923b5b50d2 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java @@ -17,7 +17,6 @@ import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.CustomFunctions; -import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.OperatorType; @@ -43,6 +42,7 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.SystemSessionProperties.EXPERIMENTAL_FUNCTIONS_ENABLED; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; @@ -204,22 +204,6 @@ public void testOperatorTypes() assertFalse(functionManager.getFunctionMetadata(functionResolution.notFunction()).getOperatorType().isPresent()); } - @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = ".*Non-builtin functions must be reference by three parts: catalog\\.schema\\.function_name, found: a\\.b") - public void testSqlFunctionReferenceTooShort() - { - TypeRegistry typeManager = new TypeRegistry(); - FunctionManager functionManager = new FunctionManager(typeManager, new BlockEncodingManager(typeManager), new FeaturesConfig()); - functionManager.resolveFunction(TEST_SESSION.getTransactionId(), QualifiedName.of("a", "b"), ImmutableList.of()); - } - - @Test(expectedExceptions = PrestoException.class, expectedExceptionsMessageRegExp = ".*Non-builtin functions must be reference by three parts: catalog\\.schema\\.function_name, found: a\\.b\\.c\\.d") - public void testSqlFunctionReferenceTooLong() - { - TypeRegistry typeManager = new TypeRegistry(); - FunctionManager functionManager = new FunctionManager(typeManager, new BlockEncodingManager(typeManager), new FeaturesConfig()); - functionManager.resolveFunction(TEST_SESSION.getTransactionId(), QualifiedName.of("a", "b", "c", "d"), ImmutableList.of()); - } - @Test public void testResolveFunctionByExactMatch() { @@ -448,7 +432,7 @@ private FunctionHandle resolveFunctionHandle() FeaturesConfig featuresConfig = new FeaturesConfig(); FunctionManager functionManager = new FunctionManager(typeRegistry, blockEncoding, featuresConfig); functionManager.registerBuiltInFunctions(createFunctionsFromSignatures()); - return functionManager.resolveFunction(TEST_SESSION.getTransactionId(), QualifiedName.of("presto", "default", TEST_FUNCTION_NAME), fromTypeSignatures(parameterTypes)); + return functionManager.resolveFunction(TEST_SESSION.getTransactionId(), qualifyFunctionName(QualifiedName.of(TEST_FUNCTION_NAME)), fromTypeSignatures(parameterTypes)); } private List createFunctionsFromSignatures() diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java index 6cb74770f7675..49430e96a4173 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java @@ -35,6 +35,7 @@ import java.util.List; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; @@ -87,7 +88,7 @@ protected void registerTypes(Plugin plugin) protected final InternalAggregationFunction getFunction() { List parameterTypes = fromTypeSignatures(Lists.transform(getFunctionParameterTypes(), TypeSignature::parseTypeSignature)); - FunctionHandle functionHandle = functionManager.resolveFunction(session.getTransactionId(), QualifiedName.of(getFunctionName()), parameterTypes); + FunctionHandle functionHandle = functionManager.resolveFunction(session.getTransactionId(), qualifyFunctionName(QualifiedName.of(getFunctionName())), parameterTypes); return functionManager.getAggregateFunctionImplementation(functionHandle); } diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java index 27ef4993e2ed4..2c8152b9dfb70 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java @@ -40,6 +40,7 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.JOIN_MAX_BROADCAST_TABLE_SIZE; import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; @@ -335,7 +336,7 @@ public void testDoesNotFireForNonDeterministicFilter() ImmutableList.of(p.variable("A1"), p.variable("B1")), Optional.of(comparisonRowExpression(LESS_THAN, variable("A1", BIGINT), call( RANDOM.toString(), - tester.getMetadata().getFunctionManager().resolveFunction(Optional.empty(), RANDOM, ImmutableList.of()), + tester.getMetadata().getFunctionManager().resolveFunction(Optional.empty(), qualifyFunctionName(RANDOM), ImmutableList.of()), BIGINT, ImmutableList.of()))))) .doesNotFire(); diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java index 47cbcd88dc052..9a77cd109b1a1 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java @@ -96,6 +96,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; @@ -337,7 +338,10 @@ private AggregationBuilder addAggregation(VariableReferenceExpression output, Ex { checkArgument(expression instanceof FunctionCall); FunctionCall call = (FunctionCall) expression; - FunctionHandle functionHandle = metadata.getFunctionManager().resolveFunction(session.getTransactionId(), call.getName(), TypeSignatureProvider.fromTypes(inputTypes)); + FunctionHandle functionHandle = metadata.getFunctionManager().resolveFunction( + session.getTransactionId(), + qualifyFunctionName(call.getName()), + TypeSignatureProvider.fromTypes(inputTypes)); return addAggregation(output, new Aggregation( new CallExpression( call.getName().getSuffix(), diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java index 5cf10377b8f50..d3da38776748b 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java @@ -130,6 +130,12 @@ public void testNestedSqlFunctions() "Invoking a dynamically registered function in SQL function body is not supported"); } + public void testInvalidFunctionName() + { + assertQueryFails("SELECT x.y(1)", ".*Non-builtin functions must be referenced by 'catalog\\.schema\\.function_name', found: x\\.y"); + assertQueryFails("SELECT x.y.z.w()", ".*Non-builtin functions must be referenced by 'catalog\\.schema\\.function_name', found: x\\.y\\.z\\.w"); + } + @Test public void testSqlFunctions() { From f9f9d83c84dbb35fc49e5b4c70326024d8ff3d1e Mon Sep 17 00:00:00 2001 From: Leiqing Cai Date: Sun, 12 Apr 2020 16:55:16 -0700 Subject: [PATCH 045/129] Support SHOW CREATE FUNCTION Support syntax, semantic analysis, and execution for SHOW CREATE FUNCTION. An optional list of parameter types may be specified. For each matching signature, returns the canonical CREATE FUNCTION query text that can be used to create the exact same function, along with the parameter type list of that function signature so that user can differentiate among the functions. --- .../presto/metadata/FunctionManager.java | 16 ++- .../server/testing/TestingPrestoServer.java | 8 ++ .../sql/rewrite/ShowQueriesRewrite.java | 72 ++++++++++++++ .../facebook/presto/util/StatementUtils.java | 2 + .../com/facebook/presto/sql/parser/SqlBase.g4 | 1 + .../com/facebook/presto/sql/SqlFormatter.java | 13 ++- .../presto/sql/parser/AstBuilder.java | 8 ++ .../facebook/presto/sql/tree/AstVisitor.java | 5 + .../presto/sql/tree/ShowCreateFunction.java | 98 +++++++++++++++++++ .../presto/sql/parser/TestSqlParser.java | 11 +++ .../presto/tests/TestSqlFunctions.java | 64 ++++++++++++ 11 files changed, 295 insertions(+), 3 deletions(-) create mode 100644 presto-parser/src/main/java/com/facebook/presto/sql/tree/ShowCreateFunction.java diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java index fd91792accb94..ec5b8c9d74df3 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java @@ -109,7 +109,7 @@ public class FunctionManager private final FunctionInvokerProvider functionInvokerProvider; private final Map functionNamespaceManagerFactories = new ConcurrentHashMap<>(); private final HandleResolver handleResolver; - private final Map> functionNamespaceManagers = new ConcurrentHashMap<>(); + private final Map> functionNamespaceManagers = new ConcurrentHashMap<>(); private final LoadingCache functionCache; private final CacheStatsMBean cacheStatsMBean; @@ -200,6 +200,18 @@ public List listFunctions(Session session) .collect(toImmutableList()); } + public Collection getFunctions(Optional transactionId, QualifiedFunctionName functionName) + { + Optional> functionNamespaceManager = getServingFunctionNamespaceManager(functionName.getFunctionNamespace()); + if (!functionNamespaceManager.isPresent()) { + throw new PrestoException(FUNCTION_NOT_FOUND, format("Function not found: %s", functionName)); + } + + Optional transactionHandle = transactionId.map( + id -> transactionManager.getFunctionNamespaceTransaction(id, functionName.getFunctionNamespace().getCatalogName())); + return functionNamespaceManager.get().getFunctions(transactionHandle, functionName); + } + public void createFunction(SqlInvokedFunction function, boolean replace) { Optional> functionNamespaceManager = getServingFunctionNamespaceManager(function.getSignature().getName().getFunctionNamespace()); @@ -438,7 +450,7 @@ private FunctionHandle lookupFunction( throw new PrestoException(FUNCTION_NOT_FOUND, constructFunctionNotFoundErrorMessage(functionName, parameterTypes, candidates)); } - private Optional> getServingFunctionNamespaceManager(CatalogSchemaName functionNamespace) + private Optional> getServingFunctionNamespaceManager(CatalogSchemaName functionNamespace) { return Optional.ofNullable(functionNamespaceManagers.get(functionNamespace.getCatalogName())); } diff --git a/presto-main/src/main/java/com/facebook/presto/server/testing/TestingPrestoServer.java b/presto-main/src/main/java/com/facebook/presto/server/testing/TestingPrestoServer.java index 83bb640be8bee..ce963305cc548 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/testing/TestingPrestoServer.java +++ b/presto-main/src/main/java/com/facebook/presto/server/testing/TestingPrestoServer.java @@ -62,6 +62,7 @@ import com.facebook.presto.split.PageSourceManager; import com.facebook.presto.split.SplitManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; +import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.parser.SqlParserOptions; import com.facebook.presto.sql.planner.ConnectorPlanOptimizerManager; import com.facebook.presto.sql.planner.NodePartitioningManager; @@ -132,6 +133,7 @@ public class TestingPrestoServer private final TestingHttpServer server; private final CatalogManager catalogManager; private final TransactionManager transactionManager; + private final SqlParser sqlParser; private final Metadata metadata; private final StatsCalculator statsCalculator; private final TestingAccessControlManager accessControl; @@ -302,6 +304,7 @@ public TestingPrestoServer( server = injector.getInstance(TestingHttpServer.class); catalogManager = injector.getInstance(CatalogManager.class); transactionManager = injector.getInstance(TransactionManager.class); + sqlParser = injector.getInstance(SqlParser.class); metadata = injector.getInstance(Metadata.class); accessControl = injector.getInstance(TestingAccessControlManager.class); procedureTester = injector.getInstance(ProcedureTester.class); @@ -437,6 +440,11 @@ public TransactionManager getTransactionManager() return transactionManager; } + public SqlParser getSqlParser() + { + return sqlParser; + } + public Metadata getMetadata() { return metadata; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java index f601d62fbecec..6c8887b285ca6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java @@ -28,12 +28,14 @@ import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionKind; +import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.PrincipalType; import com.facebook.presto.spi.session.PropertyMetadata; +import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.QueryExplainer; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.parser.ParsingException; @@ -43,6 +45,7 @@ import com.facebook.presto.sql.tree.AstVisitor; import com.facebook.presto.sql.tree.BooleanLiteral; import com.facebook.presto.sql.tree.ColumnDefinition; +import com.facebook.presto.sql.tree.CreateFunction; import com.facebook.presto.sql.tree.CreateTable; import com.facebook.presto.sql.tree.CreateView; import com.facebook.presto.sql.tree.DoubleLiteral; @@ -57,9 +60,11 @@ import com.facebook.presto.sql.tree.QualifiedName; import com.facebook.presto.sql.tree.Query; import com.facebook.presto.sql.tree.Relation; +import com.facebook.presto.sql.tree.RoutineCharacteristics; import com.facebook.presto.sql.tree.ShowCatalogs; import com.facebook.presto.sql.tree.ShowColumns; import com.facebook.presto.sql.tree.ShowCreate; +import com.facebook.presto.sql.tree.ShowCreateFunction; import com.facebook.presto.sql.tree.ShowFunctions; import com.facebook.presto.sql.tree.ShowGrants; import com.facebook.presto.sql.tree.ShowRoleGrants; @@ -68,6 +73,7 @@ import com.facebook.presto.sql.tree.ShowSession; import com.facebook.presto.sql.tree.ShowTables; import com.facebook.presto.sql.tree.SortItem; +import com.facebook.presto.sql.tree.SqlParameterDeclaration; import com.facebook.presto.sql.tree.Statement; import com.facebook.presto.sql.tree.StringLiteral; import com.facebook.presto.sql.tree.TableElement; @@ -78,6 +84,7 @@ import com.google.common.collect.ImmutableSortedMap; import com.google.common.primitives.Primitives; +import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; @@ -92,11 +99,14 @@ import static com.facebook.presto.connector.informationSchema.InformationSchemaMetadata.TABLE_TABLES; import static com.facebook.presto.connector.informationSchema.InformationSchemaMetadata.TABLE_TABLE_PRIVILEGES; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; +import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.metadata.MetadataListing.listCatalogs; import static com.facebook.presto.metadata.MetadataListing.listSchemas; import static com.facebook.presto.metadata.MetadataUtil.createCatalogSchemaName; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedName; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; +import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_NOT_FOUND; +import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_COLUMN_PROPERTY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_TABLE_PROPERTY; import static com.facebook.presto.sql.ExpressionUtils.combineConjuncts; @@ -126,6 +136,9 @@ import static com.facebook.presto.sql.analyzer.SemanticErrorCode.VIEW_PARSE_ERROR; import static com.facebook.presto.sql.tree.BooleanLiteral.FALSE_LITERAL; import static com.facebook.presto.sql.tree.BooleanLiteral.TRUE_LITERAL; +import static com.facebook.presto.sql.tree.RoutineCharacteristics.Determinism; +import static com.facebook.presto.sql.tree.RoutineCharacteristics.Language; +import static com.facebook.presto.sql.tree.RoutineCharacteristics.NullCallClause; import static com.facebook.presto.sql.tree.ShowCreate.Type.TABLE; import static com.facebook.presto.sql.tree.ShowCreate.Type.VIEW; import static com.google.common.base.Strings.nullToEmpty; @@ -133,6 +146,7 @@ import static java.lang.String.format; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; final class ShowQueriesRewrite @@ -479,6 +493,64 @@ protected Node visitShowCreate(ShowCreate node, Void context) throw new UnsupportedOperationException("SHOW CREATE only supported for tables and views"); } + @Override + protected Node visitShowCreateFunction(ShowCreateFunction node, Void context) + { + QualifiedFunctionName functionName = qualifyFunctionName(node.getName()); + Collection functions = metadata.getFunctionManager().getFunctions(session.getTransactionId(), functionName); + if (node.getParameterTypes().isPresent()) { + List parameterTypes = node.getParameterTypes().get().stream() + .map(TypeSignature::parseTypeSignature) + .collect(toImmutableList()); + functions = functions.stream() + .filter(function -> function.getSignature().getArgumentTypes().equals(parameterTypes)) + .collect(toImmutableList()); + } + if (functions.isEmpty()) { + String types = node.getParameterTypes().map(parameterTypes -> format("(%s)", Joiner.on(", ").join(parameterTypes))).orElse(""); + throw new PrestoException(FUNCTION_NOT_FOUND, format("Function not found: %s%s", functionName, types)); + } + + ImmutableList.Builder rows = ImmutableList.builder(); + for (SqlFunction function : functions) { + if (!(function instanceof SqlInvokedFunction)) { + throw new PrestoException(GENERIC_USER_ERROR, "SHOW CREATE FUNCTION is only supported for SQL functions"); + } + + SqlInvokedFunction sqlFunction = (SqlInvokedFunction) function; + CreateFunction createFunction = new CreateFunction( + node.getName(), + false, + sqlFunction.getParameters().stream() + .map(parameter -> new SqlParameterDeclaration(new Identifier(parameter.getName(), true), parameter.getType().toString())) + .collect(toImmutableList()), + sqlFunction.getSignature().getReturnType().toString(), + Optional.of(sqlFunction.getDescription()), + new RoutineCharacteristics( + Language.valueOf(sqlFunction.getRoutineCharacteristics().getLanguage().name()), + Determinism.valueOf(sqlFunction.getRoutineCharacteristics().getDeterminism().name()), + NullCallClause.valueOf(sqlFunction.getRoutineCharacteristics().getNullCallClause().name())), + sqlParser.createRoutineBody(sqlFunction.getBody(), createParsingOptions(session, warningCollector))); + rows.add(row( + new StringLiteral(formatSql(createFunction, Optional.empty())), + new StringLiteral(function.getSignature().getArgumentTypes().stream() + .map(TypeSignature::toString) + .collect(joining(", "))))); + } + + Map columns = ImmutableMap.builder() + .put("create_function", "Create Function") + .put("argument_types", "Argument Types") + .build(); + + return simpleQuery( + selectAll(columns.entrySet().stream() + .map(entry -> aliasedName(entry.getKey(), entry.getValue())) + .collect(toImmutableList())), + aliased(new Values(rows.build()), "functions", ImmutableList.copyOf(columns.keySet())), + ordering(ascending("argument_types"))); + } + private List buildProperties( Object objectName, Optional columnName, diff --git a/presto-main/src/main/java/com/facebook/presto/util/StatementUtils.java b/presto-main/src/main/java/com/facebook/presto/util/StatementUtils.java index fd54fc0aeb241..f6a8e779d65e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/StatementUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/util/StatementUtils.java @@ -53,6 +53,7 @@ import com.facebook.presto.sql.tree.ShowCatalogs; import com.facebook.presto.sql.tree.ShowColumns; import com.facebook.presto.sql.tree.ShowCreate; +import com.facebook.presto.sql.tree.ShowCreateFunction; import com.facebook.presto.sql.tree.ShowFunctions; import com.facebook.presto.sql.tree.ShowGrants; import com.facebook.presto.sql.tree.ShowRoleGrants; @@ -89,6 +90,7 @@ private StatementUtils() {} builder.put(ShowCatalogs.class, QueryType.DESCRIBE); builder.put(ShowCreate.class, QueryType.DESCRIBE); + builder.put(ShowCreateFunction.class, QueryType.DESCRIBE); builder.put(ShowFunctions.class, QueryType.DESCRIBE); builder.put(ShowGrants.class, QueryType.DESCRIBE); builder.put(ShowRoles.class, QueryType.DESCRIBE); diff --git a/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4 b/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4 index 4025fd8401752..cd0582dd9bfe5 100644 --- a/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4 +++ b/presto-parser/src/main/antlr4/com/facebook/presto/sql/parser/SqlBase.g4 @@ -96,6 +96,7 @@ statement ('(' explainOption (',' explainOption)* ')')? statement #explain | SHOW CREATE TABLE qualifiedName #showCreateTable | SHOW CREATE VIEW qualifiedName #showCreateView + | SHOW CREATE FUNCTION qualifiedName types? #showCreateFunction | SHOW TABLES ((FROM | IN) qualifiedName)? (LIKE pattern=string (ESCAPE escape=string)?)? #showTables | SHOW SCHEMAS ((FROM | IN) identifier)? diff --git a/presto-parser/src/main/java/com/facebook/presto/sql/SqlFormatter.java b/presto-parser/src/main/java/com/facebook/presto/sql/SqlFormatter.java index 7e9b64b1e6687..9f5c07f9bf75d 100644 --- a/presto-parser/src/main/java/com/facebook/presto/sql/SqlFormatter.java +++ b/presto-parser/src/main/java/com/facebook/presto/sql/SqlFormatter.java @@ -88,6 +88,7 @@ import com.facebook.presto.sql.tree.ShowCatalogs; import com.facebook.presto.sql.tree.ShowColumns; import com.facebook.presto.sql.tree.ShowCreate; +import com.facebook.presto.sql.tree.ShowCreateFunction; import com.facebook.presto.sql.tree.ShowFunctions; import com.facebook.presto.sql.tree.ShowGrants; import com.facebook.presto.sql.tree.ShowRoleGrants; @@ -727,6 +728,16 @@ else if (node.getType() == ShowCreate.Type.VIEW) { return null; } + @Override + protected Void visitShowCreateFunction(ShowCreateFunction node, Integer context) + { + builder.append("SHOW CREATE FUNCTION ") + .append(formatName(node.getName())); + node.getParameterTypes().map(Formatter::formatTypeList).ifPresent(builder::append); + + return null; + } + @Override protected Void visitShowColumns(ShowColumns node, Integer context) { @@ -930,7 +941,7 @@ private String formatSqlParameterDeclarations(List para .collect(joining(",\n", "(\n", "\n)")); } - public static String formatTypeList(List types) + private static String formatTypeList(List types) { return format("(%s)", Joiner.on(", ").join(types)); } diff --git a/presto-parser/src/main/java/com/facebook/presto/sql/parser/AstBuilder.java b/presto-parser/src/main/java/com/facebook/presto/sql/parser/AstBuilder.java index 0a27edd17e563..ddcc34b3b1f25 100644 --- a/presto-parser/src/main/java/com/facebook/presto/sql/parser/AstBuilder.java +++ b/presto-parser/src/main/java/com/facebook/presto/sql/parser/AstBuilder.java @@ -135,6 +135,7 @@ import com.facebook.presto.sql.tree.ShowCatalogs; import com.facebook.presto.sql.tree.ShowColumns; import com.facebook.presto.sql.tree.ShowCreate; +import com.facebook.presto.sql.tree.ShowCreateFunction; import com.facebook.presto.sql.tree.ShowFunctions; import com.facebook.presto.sql.tree.ShowGrants; import com.facebook.presto.sql.tree.ShowRoleGrants; @@ -325,6 +326,13 @@ public Node visitShowCreateTable(SqlBaseParser.ShowCreateTableContext context) return new ShowCreate(getLocation(context), ShowCreate.Type.TABLE, getQualifiedName(context.qualifiedName())); } + @Override + public Node visitShowCreateFunction(SqlBaseParser.ShowCreateFunctionContext context) + { + Optional> parameterTypes = context.types() == null ? Optional.empty() : Optional.of(getTypes(context.types())); + return new ShowCreateFunction(getLocation(context), getQualifiedName(context.qualifiedName()), parameterTypes); + } + @Override public Node visitDropTable(SqlBaseParser.DropTableContext context) { diff --git a/presto-parser/src/main/java/com/facebook/presto/sql/tree/AstVisitor.java b/presto-parser/src/main/java/com/facebook/presto/sql/tree/AstVisitor.java index c3e5123f7c7a2..83c9598aeac44 100644 --- a/presto-parser/src/main/java/com/facebook/presto/sql/tree/AstVisitor.java +++ b/presto-parser/src/main/java/com/facebook/presto/sql/tree/AstVisitor.java @@ -152,6 +152,11 @@ protected R visitShowCreate(ShowCreate node, C context) return visitStatement(node, context); } + protected R visitShowCreateFunction(ShowCreateFunction node, C context) + { + return visitStatement(node, context); + } + protected R visitShowFunctions(ShowFunctions node, C context) { return visitStatement(node, context); diff --git a/presto-parser/src/main/java/com/facebook/presto/sql/tree/ShowCreateFunction.java b/presto-parser/src/main/java/com/facebook/presto/sql/tree/ShowCreateFunction.java new file mode 100644 index 0000000000000..426a23c157392 --- /dev/null +++ b/presto-parser/src/main/java/com/facebook/presto/sql/tree/ShowCreateFunction.java @@ -0,0 +1,98 @@ +/* + * 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 com.facebook.presto.sql.tree; + +import com.google.common.collect.ImmutableList; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import static com.google.common.base.MoreObjects.toStringHelper; +import static java.util.Objects.requireNonNull; + +public class ShowCreateFunction + extends Statement +{ + private final QualifiedName name; + private final Optional> parameterTypes; + + public ShowCreateFunction(QualifiedName name, Optional> parameterTypes) + { + this(Optional.empty(), name, parameterTypes); + } + + public ShowCreateFunction(NodeLocation location, QualifiedName name, Optional> parameterTypes) + { + this(Optional.of(location), name, parameterTypes); + } + + private ShowCreateFunction(Optional location, QualifiedName name, Optional> parameterTypes) + { + super(location); + this.name = requireNonNull(name, "name is null"); + this.parameterTypes = requireNonNull(parameterTypes, "parameterTypes is null"); + } + + public QualifiedName getName() + { + return name; + } + + public Optional> getParameterTypes() + { + return parameterTypes; + } + + @Override + public R accept(AstVisitor visitor, C context) + { + return visitor.visitShowCreateFunction(this, context); + } + + @Override + public List getChildren() + { + return ImmutableList.of(); + } + + @Override + public int hashCode() + { + return Objects.hash(name, parameterTypes); + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) { + return true; + } + if ((obj == null) || (getClass() != obj.getClass())) { + return false; + } + ShowCreateFunction o = (ShowCreateFunction) obj; + return Objects.equals(name, o.name) + && Objects.equals(parameterTypes, o.parameterTypes); + } + + @Override + public String toString() + { + return toStringHelper(this) + .add("name", name) + .add("parameterTypes", parameterTypes) + .toString(); + } +} diff --git a/presto-parser/src/test/java/com/facebook/presto/sql/parser/TestSqlParser.java b/presto-parser/src/test/java/com/facebook/presto/sql/parser/TestSqlParser.java index 07095490153d1..b375e9a350a64 100644 --- a/presto-parser/src/test/java/com/facebook/presto/sql/parser/TestSqlParser.java +++ b/presto-parser/src/test/java/com/facebook/presto/sql/parser/TestSqlParser.java @@ -115,6 +115,7 @@ import com.facebook.presto.sql.tree.SetSession; import com.facebook.presto.sql.tree.ShowCatalogs; import com.facebook.presto.sql.tree.ShowColumns; +import com.facebook.presto.sql.tree.ShowCreateFunction; import com.facebook.presto.sql.tree.ShowGrants; import com.facebook.presto.sql.tree.ShowRoleGrants; import com.facebook.presto.sql.tree.ShowRoles; @@ -724,6 +725,16 @@ public void testShowColumns() assertStatement("SHOW COLUMNS FROM \"awesome schema\".\"awesome table\"", new ShowColumns(QualifiedName.of("awesome schema", "awesome table"))); } + @Test + public void testShowCreateFunction() + { + assertStatement("SHOW CREATE FUNCTION x.y.z", new ShowCreateFunction(QualifiedName.of("x", "y", "z"), Optional.empty())); + assertStatement("SHOW CREATE FUNCTION x.y.z()", new ShowCreateFunction(QualifiedName.of("x", "y", "z"), Optional.of(ImmutableList.of()))); + assertStatement( + "SHOW CREATE FUNCTION x.y.z(int, double)", + new ShowCreateFunction(QualifiedName.of("x", "y", "z"), Optional.of(ImmutableList.of("int", "double")))); + } + @Test public void testSubstringBuiltInFunction() { diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java index d3da38776748b..526805f50147f 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestSqlFunctions.java @@ -19,6 +19,7 @@ import com.facebook.presto.testing.QueryRunner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import org.intellij.lang.annotations.Language; import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; @@ -167,4 +168,67 @@ public void testShowFunctions() .collect(toImmutableList()); assertEquals(functionNames, ImmutableList.of("example.example.b", "testing.common.a", "testing.common.d", "testing.test.c")); } + + public void testShowCreateFunctions() + { + @Language("SQL") String createFunctionInt = "CREATE FUNCTION testing.common.array_append(a array, x int)\n" + + "RETURNS array\n" + + "RETURN concat(a, array[x])"; + @Language("SQL") String createFunctionDouble = "CREATE FUNCTION testing.common.array_append(a array, x double)\n" + + "RETURNS array\n" + + "RETURN concat(a, array[x])"; + @Language("SQL") String createFunctionRand = "CREATE FUNCTION testing.common.rand()\n" + + "RETURNS double\n" + + "RETURN rand()"; + String createFunctionIntFormatted = "CREATE FUNCTION testing.common.array_append (\n" + + " \"a\" ARRAY(integer),\n" + + " \"x\" integer\n" + + ")\n" + + "RETURNS ARRAY(integer)\n" + + "COMMENT ''\n" + + "LANGUAGE SQL\n" + + "NOT DETERMINISTIC\n" + + "CALLED ON NULL INPUT\n" + + "RETURN \"concat\"(a, ARRAY[x])"; + String createFunctionDoubleFormatted = "CREATE FUNCTION testing.common.array_append (\n" + + " \"a\" ARRAY(double),\n" + + " \"x\" double\n" + + ")\n" + + "RETURNS ARRAY(double)\n" + + "COMMENT ''\n" + + "LANGUAGE SQL\n" + + "NOT DETERMINISTIC\n" + + "CALLED ON NULL INPUT\n" + + "RETURN \"concat\"(a, ARRAY[x])"; + String createFunctionRandFormatted = "CREATE FUNCTION testing.common.rand ()\n" + + "RETURNS double\n" + + "COMMENT ''\n" + + "LANGUAGE SQL\n" + + "NOT DETERMINISTIC\n" + + "CALLED ON NULL INPUT\n" + + "RETURN \"rand\"()"; + String parameterTypeInt = "ARRAY(integer), integer"; + String parameterTypeDouble = "ARRAY(double), double"; + + assertQuerySucceeds(createFunctionInt); + assertQuerySucceeds(createFunctionDouble); + assertQuerySucceeds(createFunctionRand); + + MaterializedResult rows = computeActual("SHOW CREATE FUNCTION testing.common.array_append"); + assertEquals(rows.getRowCount(), 2); + assertEquals(rows.getMaterializedRows().get(0).getFields(), ImmutableList.of(createFunctionDoubleFormatted, parameterTypeDouble)); + assertEquals(rows.getMaterializedRows().get(1).getFields(), ImmutableList.of(createFunctionIntFormatted, parameterTypeInt)); + + rows = computeActual("SHOW CREATE FUNCTION testing.common.array_append(array(int), int)"); + assertEquals(rows.getRowCount(), 1); + assertEquals(rows.getMaterializedRows().get(0).getFields(), ImmutableList.of(createFunctionIntFormatted, parameterTypeInt)); + + rows = computeActual("SHOW CREATE FUNCTION testing.common.rand()"); + assertEquals(rows.getMaterializedRows().get(0).getFields(), ImmutableList.of(createFunctionRandFormatted, "")); + + assertQueryFails("SHOW CREATE FUNCTION testing.common.array_append()", "Function not found: testing\\.common\\.array_append\\(\\)"); + + assertQueryFails("SHOW CREATE FUNCTION array_agg", "SHOW CREATE FUNCTION is only supported for SQL functions"); + assertQueryFails("SHOW CREATE FUNCTION presto.default.array_agg", "SHOW CREATE FUNCTION is only supported for SQL functions"); + } } From a75114b306232a7565075da4f53cb83a9157ca62 Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Fri, 24 Apr 2020 17:17:37 -0700 Subject: [PATCH 046/129] Enable common sub expression optimization in PageFunctionCompiler filter --- .../presto/sql/gen/ExpressionCompiler.java | 2 +- .../presto/sql/gen/PageFunctionCompiler.java | 105 +++++++++--------- .../sql/gen/TestPageFunctionCompiler.java | 40 ++++++- 3 files changed, 91 insertions(+), 56 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java index 1264afea3fbea..bf7e430bbd53b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java @@ -104,7 +104,7 @@ private Supplier compilePageProcessor( Optional classNameSuffix, OptionalInt initialBatchSize) { - Optional> filterFunctionSupplier = filter.map(expression -> pageFunctionCompiler.compileFilter(sqlFunctionProperties, expression, classNameSuffix)); + Optional> filterFunctionSupplier = filter.map(expression -> pageFunctionCompiler.compileFilter(sqlFunctionProperties, expression, isOptimizeCommonSubExpression, classNameSuffix)); List> pageProjectionSuppliers = pageFunctionCompiler.compileProjections(sqlFunctionProperties, projections, isOptimizeCommonSubExpression, classNameSuffix); return () -> { diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 96b4628109765..7089a92dbdc93 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -73,7 +73,6 @@ import java.util.Objects; import java.util.Optional; import java.util.TreeSet; -import java.util.function.Consumer; import java.util.function.Supplier; import java.util.stream.IntStream; @@ -150,7 +149,7 @@ public PageFunctionCompiler(Metadata metadata, int expressionCacheSize) filterCache = CacheBuilder.newBuilder() .recordStats() .maximumSize(expressionCacheSize) - .build(CacheLoader.from(cacheKey -> compileFilterInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions.get(0), Optional.empty()))); + .build(CacheLoader.from(cacheKey -> compileFilterInternal(cacheKey.sqlFunctionProperties, cacheKey.rowExpressions.get(0), cacheKey.isOptimizeCommonSubExpression, Optional.empty()))); filterCacheStats = new CacheStatsMBean(filterCache); } else { @@ -328,10 +327,7 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc .append(thisVariable.setField(nextIndexOrPositionField, selectedPositions.invoke("getOffset", int.class))) .append(thisVariable.setField(resultField, constantNull(Block.class))); - cseFields.values().forEach(fields -> { - body.append(thisVariable.setField(fields.evaluatedField, constantBoolean(false))); - body.append(thisVariable.setField(fields.resultField, constantNull(fields.resultType))); - }); + initializeCommonSubExpressionFields(cseFields.values(), thisVariable, body); cachedInstanceBinder.generateInitializations(thisVariable, body); body.ret(); @@ -449,7 +445,7 @@ private List generateCommonSubExpressionMethods( classDefinition, callSiteBinder, cachedInstanceBinder, - new CSEFieldAndVariableReferenceCompiler(callSiteBinder, cseMap, thisVariable), + new FieldAndVariableReferenceCompiler(callSiteBinder, cseMap, thisVariable), metadata, sqlFunctionProperties, compiledLambdaMap); @@ -507,7 +503,7 @@ private MethodDefinition generateEvaluateMethod( classDefinition, callSiteBinder, cachedInstanceBinder, - new CSEFieldAndVariableReferenceCompiler(callSiteBinder, cseFields, thisVariable), + new FieldAndVariableReferenceCompiler(callSiteBinder, cseFields, thisVariable), metadata, sqlFunctionProperties, compiledLambdaMap); @@ -523,22 +519,22 @@ private MethodDefinition generateEvaluateMethod( return method; } - public Supplier compileFilter(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, Optional classNameSuffix) + public Supplier compileFilter(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { if (filterCache == null) { - return compileFilterInternal(sqlFunctionProperties, filter, classNameSuffix); + return compileFilterInternal(sqlFunctionProperties, filter, isOptimizeCommonSubExpression, classNameSuffix); } - return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(filter), false)); + return filterCache.getUnchecked(new CacheKey(sqlFunctionProperties, ImmutableList.of(filter), isOptimizeCommonSubExpression)); } - private Supplier compileFilterInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, Optional classNameSuffix) + private Supplier compileFilterInternal(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { requireNonNull(filter, "filter is null"); PageFieldsToInputParametersRewriter.Result result = rewritePageFieldsToInputParameters(filter); CallSiteBinder callSiteBinder = new CallSiteBinder(); - ClassDefinition classDefinition = defineFilterClass(sqlFunctionProperties, result.getRewrittenExpression(), result.getInputChannels(), callSiteBinder, classNameSuffix); + ClassDefinition classDefinition = defineFilterClass(sqlFunctionProperties, result.getRewrittenExpression(), result.getInputChannels(), callSiteBinder, isOptimizeCommonSubExpression, classNameSuffix); Class functionClass; try { @@ -563,7 +559,7 @@ private static ParameterizedType generateFilterClassName(Optional classN return makeClassName(PageFilter.class.getSimpleName(), classNameSuffix); } - private ClassDefinition defineFilterClass(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, InputChannels inputChannels, CallSiteBinder callSiteBinder, Optional classNameSuffix) + private ClassDefinition defineFilterClass(SqlFunctionProperties sqlFunctionProperties, RowExpression filter, InputChannels inputChannels, CallSiteBinder callSiteBinder, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { ClassDefinition classDefinition = new ClassDefinition( a(PUBLIC, FINAL), @@ -574,7 +570,22 @@ private ClassDefinition defineFilterClass(SqlFunctionProperties sqlFunctionPrope CachedInstanceBinder cachedInstanceBinder = new CachedInstanceBinder(classDefinition, callSiteBinder); Map compiledLambdaMap = generateMethodsForLambda(classDefinition, callSiteBinder, cachedInstanceBinder, filter, metadata, sqlFunctionProperties); - generateFilterMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, filter); + + // cse + Map cseFields = ImmutableMap.of(); + if (isOptimizeCommonSubExpression) { + Map> commonSubExpressionsByLevel = collectCSEByLevel(filter); + if (!commonSubExpressionsByLevel.isEmpty()) { + cseFields = declareCommonSubExpressionFields(classDefinition, commonSubExpressionsByLevel); + generateCommonSubExpressionMethods(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, commonSubExpressionsByLevel, cseFields); + Map commonSubExpressions = commonSubExpressionsByLevel.values().stream() + .flatMap(m -> m.entrySet().stream()) + .collect(toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)); + filter = rewriteExpressionWithCSE(filter, commonSubExpressions); + } + } + + generateFilterMethod(sqlFunctionProperties, classDefinition, callSiteBinder, cachedInstanceBinder, compiledLambdaMap, filter, cseFields); FieldDefinition selectedPositions = classDefinition.declareField(a(PRIVATE), "selectedPositions", boolean[].class); generatePageFilterMethod(classDefinition, selectedPositions); @@ -603,11 +614,20 @@ private ClassDefinition defineFilterClass(SqlFunctionProperties sqlFunctionPrope .retObject(); // constructor - generateConstructor(classDefinition, cachedInstanceBinder, compiledLambdaMap, method -> { - Variable thisVariable = method.getScope().getThis(); - method.getBody().append(thisVariable.setField(selectedPositions, newArray(type(boolean[].class), 0))); - }); + MethodDefinition constructorDefinition = classDefinition.declareConstructor(a(PUBLIC)); + + BytecodeBlock body = constructorDefinition.getBody(); + Variable thisVariable = constructorDefinition.getThis(); + body.comment("super();") + .append(thisVariable) + .invokeConstructor(Object.class) + .append(thisVariable.setField(selectedPositions, newArray(type(boolean[].class), 0))); + + initializeCommonSubExpressionFields(cseFields.values(), thisVariable, body); + + cachedInstanceBinder.generateInitializations(thisVariable, body); + body.ret(); return classDefinition; } @@ -660,7 +680,8 @@ private MethodDefinition generateFilterMethod( CallSiteBinder callSiteBinder, CachedInstanceBinder cachedInstanceBinder, Map compiledLambdaMap, - RowExpression filter) + RowExpression filter, + Map cseFields) { Parameter properties = arg("properties", SqlFunctionProperties.class); Parameter page = arg("page", Page.class); @@ -680,15 +701,17 @@ private MethodDefinition generateFilterMethod( Scope scope = method.getScope(); BytecodeBlock body = method.getBody(); + Variable thisVariable = scope.getThis(); declareBlockVariables(ImmutableList.of(filter), page, scope, body); + cseFields.values().forEach(fields -> body.append(thisVariable.setField(fields.evaluatedField, constantBoolean(false)))); Variable wasNullVariable = scope.declareVariable("wasNull", body, constantFalse()); RowExpressionCompiler compiler = new RowExpressionCompiler( classDefinition, callSiteBinder, cachedInstanceBinder, - fieldReferenceCompiler(callSiteBinder), + new FieldAndVariableReferenceCompiler(callSiteBinder, cseFields, thisVariable), metadata, sqlFunctionProperties, compiledLambdaMap); @@ -701,25 +724,12 @@ private MethodDefinition generateFilterMethod( return method; } - private static void generateConstructor( - ClassDefinition classDefinition, - CachedInstanceBinder cachedInstanceBinder, - Map compiledLambdaMap, - Consumer additionalStatements) + private static void initializeCommonSubExpressionFields(Collection cseFields, Variable thisVariable, BytecodeBlock body) { - MethodDefinition constructorDefinition = classDefinition.declareConstructor(a(PUBLIC)); - - BytecodeBlock body = constructorDefinition.getBody(); - Variable thisVariable = constructorDefinition.getThis(); - - body.comment("super();") - .append(thisVariable) - .invokeConstructor(Object.class); - - additionalStatements.accept(constructorDefinition); - - cachedInstanceBinder.generateInitializations(thisVariable, body); - body.ret(); + cseFields.forEach(fields -> { + body.append(thisVariable.setField(fields.evaluatedField, constantBoolean(false))); + body.append(thisVariable.setField(fields.resultField, constantNull(fields.resultType))); + }); } private static void declareBlockVariables(List expressions, Parameter page, Scope scope, BytecodeBlock body) @@ -754,11 +764,6 @@ private static List getInputChannels(Iterable expression return ImmutableList.copyOf(channels); } - private static List getInputChannels(RowExpression expression) - { - return getInputChannels(ImmutableList.of(expression)); - } - private static int[] toIntArray(List list) { int[] array = new int[list.size()]; @@ -768,14 +773,6 @@ private static int[] toIntArray(List list) return array; } - private static RowExpressionVisitor fieldReferenceCompiler(CallSiteBinder callSiteBinder) - { - return new InputReferenceCompiler( - (scope, field) -> scope.getVariable("block_" + field), - (scope, field) -> scope.getVariable("position"), - callSiteBinder); - } - private static class CommonSubExpressionFields { private final FieldDefinition evaluatedField; @@ -792,14 +789,14 @@ public CommonSubExpressionFields(FieldDefinition evaluatedField, FieldDefinition } } - private static class CSEFieldAndVariableReferenceCompiler + private static class FieldAndVariableReferenceCompiler implements RowExpressionVisitor { private final InputReferenceCompiler inputReferenceCompiler; private final Map variableMap; private final Variable thisVariable; - public CSEFieldAndVariableReferenceCompiler(CallSiteBinder callSiteBinder, Map variableMap, Variable thisVariable) + public FieldAndVariableReferenceCompiler(CallSiteBinder callSiteBinder, Map variableMap, Variable thisVariable) { this.inputReferenceCompiler = new InputReferenceCompiler( (scope, field) -> scope.getVariable("block_" + field), diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index c12288bd10021..695c24d5f1a29 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -16,6 +16,7 @@ import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; +import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; @@ -24,6 +25,7 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.relation.CallExpression; +import com.facebook.presto.spi.relation.SpecialFormExpression; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -34,7 +36,11 @@ import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.function.OperatorType.ADD; +import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; +import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; @@ -64,6 +70,20 @@ public class TestPageFunctionCompiler field(0, BIGINT), field(1, BIGINT)); + private static final CallExpression ADD_X_Y_GREATER_THAN_2 = call( + GREATER_THAN.name(), + FUNCTION_MANAGER.resolveOperator(GREATER_THAN, fromTypes(BIGINT, BIGINT)), + BOOLEAN, + ADD_X_Y, + constant(2L, BIGINT)); + + private static final CallExpression ADD_X_Y_LESS_THAN_10 = call( + LESS_THAN.name(), + FUNCTION_MANAGER.resolveOperator(LESS_THAN, fromTypes(BIGINT, BIGINT)), + BOOLEAN, + ADD_X_Y, + constant(10L, BIGINT)); + private static final CallExpression ADD_X_Y_Z = call( ADD.name(), FUNCTION_MANAGER.resolveOperator(ADD, fromTypes(BIGINT, BIGINT)), @@ -153,7 +173,7 @@ public void testCache() } @Test - public void testCommonSubExpression() + public void testCommonSubExpressionInProjection() { PageFunctionCompiler functionCompiler = new PageFunctionCompiler(createTestMetadataManager(), 0); @@ -173,6 +193,19 @@ public void testCommonSubExpression() checkBlockEqual(cseResult.get(1), noCseResult2.get(0)); } + @Test + public void testCommonSubExpressionInFilter() + { + PageFunctionCompiler functionCompiler = new PageFunctionCompiler(createTestMetadataManager(), 0); + + Supplier pageFilter = functionCompiler.compileFilter(SESSION.getSqlFunctionProperties(), new SpecialFormExpression(AND, BIGINT, ADD_X_Y_GREATER_THAN_2, ADD_X_Y_LESS_THAN_10), true, Optional.empty()); + + Page input = createLongBlockPage(2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + SelectedPositions positions = filter(pageFilter.get(), input); + assertEquals(positions.size(), 3); + assertEquals(positions.getPositions(), new int[]{2, 3, 4}); + } + private void checkBlockEqual(Block a, Block b) { assertEquals(a.getPositionCount(), b.getPositionCount()); @@ -188,6 +221,11 @@ private List project(PageProjection projection, Page page, SelectedPositi return work.getResult(); } + private SelectedPositions filter(PageFilter filter, Page page) + { + return filter.filter(SESSION.getSqlFunctionProperties(), filter.getInputChannels().getInputChannels(page)); + } + private static Page createLongBlockPage(int blockCount, long... values) { Block[] blocks = new Block[blockCount]; From b13f60bd4d27395d059756dce944b86b6b419694 Mon Sep 17 00:00:00 2001 From: Ying Su Date: Sat, 25 Apr 2020 18:59:07 -0700 Subject: [PATCH 047/129] Pre-calculate nested positions array size in BlockEncodingBuffer The positions array for nested BlockEncodingBuffer used to be grown on the fly. This uses extra CPU and makes the positions array larger than required because the growth factor was 2.0. This commit pre-calculates the nested positions array size, allocate the memory in one shot, then populate the positions. --- .../AbstractBlockEncodingBuffer.java | 7 +++++-- .../repartition/ArrayBlockEncodingBuffer.java | 14 +++++--------- .../repartition/MapBlockEncodingBuffer.java | 17 +++++++++-------- .../repartition/RowBlockEncodingBuffer.java | 14 ++++++++++---- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java index 268d9120b7ec5..e28248e224f03 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java @@ -252,10 +252,13 @@ protected DecodedBlockNode mapPositionsToNestedBlock(DecodedBlockNode decodedBlo return decodedBlockNode; } - protected void appendPositionRange(int offset, int length) + protected void ensurePositionsCapacity(int capacity) { - positions = ensureCapacity(positions, positionCount + length, LARGE, PRESERVE, bufferAllocator); + positions = ensureCapacity(positions, capacity, SMALL, NONE, bufferAllocator); + } + protected void appendPositionRange(int offset, int length) + { for (int i = 0; i < length; i++) { positions[positionCount++] = offset + i; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java index e953a462f13b8..eaa33995e297b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java @@ -259,17 +259,13 @@ private void populateNestedPositions(ColumnarArray columnarArray) int[] positions = getPositions(); for (int i = 0; i < positionCount; i++) { - int position = positions[i]; - int beginOffset = columnarArray.getOffset(position); - int endOffset = columnarArray.getOffset(position + 1); - int length = endOffset - beginOffset; + offsets[i + 1] = offsets[i] + columnarArray.getLength(positions[i]); + } - offsets[i + 1] = offsets[i] + length; + valuesBuffers.ensurePositionsCapacity(offsets[positionCount]); - if (length > 0) { - // beginOffset is the absolute position in the nested block. We need to subtract the base offset from it to get the logical position. - valuesBuffers.appendPositionRange(beginOffset, length); - } + for (int i = 0; i < positionCount; i++) { + valuesBuffers.appendPositionRange(columnarArray.getOffset(positions[i]), offsets[i + 1] - offsets[i]); } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java index 0d155c6d5e009..8326abddc4db9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java @@ -345,16 +345,17 @@ private void populateNestedPositions() for (int i = 0; i < positionCount; i++) { int position = positions[i]; - int beginOffset = columnarMap.getOffset(position); - int endOffset = columnarMap.getOffset(position + 1); - int currentRowSize = endOffset - beginOffset; + offsets[i + 1] = offsets[i] + columnarMap.getOffset(position + 1) - columnarMap.getOffset(position); + } - offsets[i + 1] = offsets[i] + currentRowSize; + keyBuffers.ensurePositionsCapacity(offsets[positionCount]); + valueBuffers.ensurePositionsCapacity(offsets[positionCount]); - if (currentRowSize > 0) { - keyBuffers.appendPositionRange(beginOffset, currentRowSize); - valueBuffers.appendPositionRange(beginOffset, currentRowSize); - } + for (int i = 0; i < positionCount; i++) { + int beginOffset = columnarMap.getOffset(positions[i]); + int currentRowSize = offsets[i + 1] - offsets[i]; + keyBuffers.appendPositionRange(beginOffset, currentRowSize); + valueBuffers.appendPositionRange(beginOffset, currentRowSize); } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java index 9eb80b6a4ea13..ec30aa49a49c0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java @@ -312,10 +312,16 @@ private void populateNestedPositions(ColumnarRow columnarRow) int columnarRowBaseOffset = columnarRow.getOffset(0); for (int i = 0; i < positionCount; i++) { int position = positions[i]; - int beginOffset = columnarRow.getOffset(position); - int endOffset = columnarRow.getOffset(position + 1); // if the row is null, endOffsetInBlock == beginOffsetInBlock - int currentRowSize = endOffset - beginOffset; - offsets[i + 1] = offsets[i] + currentRowSize; + offsets[i + 1] = offsets[i] + columnarRow.getOffset(position + 1) - columnarRow.getOffset(position); + } + + for (int j = 0; j < fieldBuffers.length; j++) { + fieldBuffers[j].ensurePositionsCapacity(offsets[positionCount]); + } + + for (int i = 0; i < positionCount; i++) { + int beginOffset = columnarRow.getOffset(positions[i]); + int currentRowSize = offsets[i + 1] - offsets[i]; if (currentRowSize > 0) { for (int j = 0; j < fieldBuffers.length; j++) { From c609bf9cf4c497eb11f2f933269063238df52899 Mon Sep 17 00:00:00 2001 From: Sreeni Viswanadha Date: Thu, 30 Apr 2020 12:32:26 -0700 Subject: [PATCH 048/129] Prevent ASM library causing worker GC storms. ASM ClassWriter has two modes - COMPUTE_MAXS, COMPUTE_FRAMES. The first one is really fast but the second is super expensive and can end up using a lot of memory for situations where it was going to fail anyway. So we first do a call with COMPUTE_MAXS to get any errors out quickly and this will help in not causing the GC storms and worker crahses. --- .../bytecode/ByteCodeTooLargeException.java | 23 +++++++++++++++++++ .../presto/bytecode/ClassGenerator.java | 20 ++++++++++++++++ .../presto/sql/gen/PageFunctionCompiler.java | 6 +++++ .../facebook/presto/util/CompilerUtils.java | 12 +++++++++- .../presto/spi/StandardErrorCode.java | 1 + .../presto/tests/AbstractTestQueries.java | 18 +++++++++++++++ 6 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 presto-bytecode/src/main/java/com/facebook/presto/bytecode/ByteCodeTooLargeException.java diff --git a/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ByteCodeTooLargeException.java b/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ByteCodeTooLargeException.java new file mode 100644 index 0000000000000..49c728504d23a --- /dev/null +++ b/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ByteCodeTooLargeException.java @@ -0,0 +1,23 @@ +/* + * 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 com.facebook.presto.bytecode; + +public class ByteCodeTooLargeException + extends RuntimeException +{ + public ByteCodeTooLargeException(Exception cause) + { + super(cause); + } +} diff --git a/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ClassGenerator.java b/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ClassGenerator.java index 8278e96afbf61..3edcd220aa79a 100644 --- a/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ClassGenerator.java +++ b/presto-bytecode/src/main/java/com/facebook/presto/bytecode/ClassGenerator.java @@ -17,7 +17,9 @@ import com.google.common.collect.ImmutableMap; import com.google.common.reflect.Reflection; import org.objectweb.asm.ClassReader; +import org.objectweb.asm.ClassTooLargeException; import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodTooLargeException; import org.objectweb.asm.util.CheckClassAdapter; import org.objectweb.asm.util.Textifier; import org.objectweb.asm.util.TraceClassVisitor; @@ -124,6 +126,21 @@ public Map> defineClasses(List classDefinition Map bytecodes = new LinkedHashMap<>(); for (ClassDefinition classDefinition : classDefinitions) { + // We call the simpler class writer first to get any errors out using simpler setting. + // This helps when we have large queries that can potentially cause COMPUTE_FRAMES + // (used by SmartClassWriter for doing more thorough analysis) + ClassWriter simpleClassWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS); + classDefinition.visit(simpleClassWriter); + try { + simpleClassWriter.toByteArray(); + } + catch (ClassTooLargeException | MethodTooLargeException largeCodeException) { + throw new ByteCodeTooLargeException(largeCodeException); + } + catch (RuntimeException e) { + throw new CompilationException("Error compiling class: " + classDefinition.getName(), e); + } + ClassWriter writer = new SmartClassWriter(classInfoLoader); try { @@ -139,6 +156,9 @@ public Map> defineClasses(List classDefinition try { bytecode = writer.toByteArray(); } + catch (ClassTooLargeException | MethodTooLargeException largeCodeException) { + throw new ByteCodeTooLargeException(largeCodeException); + } catch (RuntimeException e) { throw new CompilationException("Error compiling class: " + classDefinition.getName(), e); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 7089a92dbdc93..68b5050f20acc 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -247,6 +247,9 @@ private Supplier compileProjectionInternal(SqlFunctionProperties try { pageProjectionWorkClass = defineClass(pageProjectionWorkDefinition, Work.class, callSiteBinder.getBindings(), getClass().getClassLoader()); } + catch (PrestoException prestoException) { + throw prestoException; + } catch (Exception e) { throw new PrestoException(COMPILER_ERROR, e); } @@ -540,6 +543,9 @@ private Supplier compileFilterInternal(SqlFunctionProperties sqlFunc try { functionClass = defineClass(classDefinition, PageFilter.class, callSiteBinder.getBindings(), getClass().getClassLoader()); } + catch (PrestoException prestoException) { + throw prestoException; + } catch (Exception e) { throw new PrestoException(COMPILER_ERROR, filter.toString(), e.getCause()); } diff --git a/presto-main/src/main/java/com/facebook/presto/util/CompilerUtils.java b/presto-main/src/main/java/com/facebook/presto/util/CompilerUtils.java index 1098b5f8e955f..026586eb49596 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/CompilerUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/util/CompilerUtils.java @@ -14,9 +14,11 @@ package com.facebook.presto.util; import com.facebook.airlift.log.Logger; +import com.facebook.presto.bytecode.ByteCodeTooLargeException; import com.facebook.presto.bytecode.ClassDefinition; import com.facebook.presto.bytecode.DynamicClassLoader; import com.facebook.presto.bytecode.ParameterizedType; +import com.facebook.presto.spi.PrestoException; import java.lang.invoke.MethodHandle; import java.time.Instant; @@ -28,6 +30,7 @@ import static com.facebook.presto.bytecode.BytecodeUtils.toJavaIdentifierString; import static com.facebook.presto.bytecode.ClassGenerator.classGenerator; import static com.facebook.presto.bytecode.ParameterizedType.typeFromJavaClassName; +import static com.facebook.presto.spi.StandardErrorCode.GENERATED_BYTECODE_TOO_LARGE; import static java.time.ZoneOffset.UTC; public final class CompilerUtils @@ -37,6 +40,8 @@ public final class CompilerUtils private static final AtomicLong CLASS_ID = new AtomicLong(); private static final DateTimeFormatter TIMESTAMP_FORMAT = DateTimeFormatter.ofPattern("YYYYMMdd_HHmmss"); + public static final String ERROR_LARGE_BYTECODE = "Query results in large bytecode exceeding the limits imposed by JVM"; + private CompilerUtils() {} public static ParameterizedType makeClassName(String baseName, Optional suffix) @@ -60,6 +65,11 @@ public static Class defineClass(ClassDefinition classDefinition public static Class defineClass(ClassDefinition classDefinition, Class superType, DynamicClassLoader classLoader) { log.debug("Defining class: %s", classDefinition.getName()); - return classGenerator(classLoader).defineClass(classDefinition, superType); + try { + return classGenerator(classLoader).defineClass(classDefinition, superType); + } + catch (ByteCodeTooLargeException byteCodeTooLargeException) { + throw new PrestoException(GENERATED_BYTECODE_TOO_LARGE, ERROR_LARGE_BYTECODE); + } } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/StandardErrorCode.java b/presto-spi/src/main/java/com/facebook/presto/spi/StandardErrorCode.java index 40c43c0c35e39..fe2d81ef7c7ae 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/StandardErrorCode.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/StandardErrorCode.java @@ -63,6 +63,7 @@ public enum StandardErrorCode QUERY_HAS_TOO_MANY_STAGES(0x0000_0028, USER_ERROR), INVALID_SPATIAL_PARTITIONING(0x0000_0029, USER_ERROR), INVALID_ANALYZE_PROPERTY(0x0000_002A, USER_ERROR), + GENERATED_BYTECODE_TOO_LARGE(0x0000_002B, USER_ERROR), GENERIC_INTERNAL_ERROR(0x0001_0000, INTERNAL_ERROR), TOO_MANY_REQUESTS_FAILED(0x0001_0001, INTERNAL_ERROR), diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java index d35e1f33d5213..65b96412a3178 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java @@ -8298,6 +8298,24 @@ public void testLastValueIgnoreNulls() "Values 1, 2, 2"); } + @Test + public void testLargeBytecode() + { + StringBuilder stringBuilder = new StringBuilder("SELECT x FROM (SELECT orderkey x, custkey y from orders limit 10) WHERE CASE"); + // Generate 100 cases. + for (int i = 0; i < 100; i++) { + stringBuilder.append(" when x in ("); + for (int j = 0; j < 20; j++) { + stringBuilder.append("random(" + (i * 100 + j) + "), "); + } + + stringBuilder.append("random(" + i + ")) then x = random()"); + } + + stringBuilder.append("else x = random() end"); + assertQueryFails(stringBuilder.toString(), "Query results in large bytecode exceeding the limits imposed by JVM|Compiler failed"); + } + protected Session noJoinReordering() { return Session.builder(getSession()) From 3d21ea9ee509e4dc73ed8e1e67190761bdf504ca Mon Sep 17 00:00:00 2001 From: Presto Release Bot Date: Fri, 1 May 2020 12:49:32 -0700 Subject: [PATCH 049/129] Prepare for next development iteration - 0.236-SNAPSHOT --- pom.xml | 2 +- presto-accumulo/pom.xml | 2 +- presto-array/pom.xml | 2 +- presto-atop/pom.xml | 2 +- presto-base-jdbc/pom.xml | 2 +- presto-benchmark-driver/pom.xml | 2 +- presto-benchmark-runner/pom.xml | 2 +- presto-benchmark/pom.xml | 2 +- presto-benchto-benchmarks/pom.xml | 2 +- presto-blackhole/pom.xml | 2 +- presto-bytecode/pom.xml | 2 +- presto-cache/pom.xml | 2 +- presto-cassandra/pom.xml | 2 +- presto-cli/pom.xml | 2 +- presto-client/pom.xml | 2 +- presto-docs/pom.xml | 2 +- presto-druid/pom.xml | 2 +- presto-elasticsearch/pom.xml | 2 +- presto-example-http/pom.xml | 2 +- presto-expressions/pom.xml | 2 +- presto-function-namespace-managers/pom.xml | 2 +- presto-geospatial-toolkit/pom.xml | 2 +- presto-geospatial/pom.xml | 2 +- presto-hive-common/pom.xml | 2 +- presto-hive-hadoop2/pom.xml | 2 +- presto-hive-metastore/pom.xml | 2 +- presto-hive/pom.xml | 2 +- presto-i18n-functions/pom.xml | 2 +- presto-jdbc/pom.xml | 2 +- presto-jmx/pom.xml | 2 +- presto-kafka/pom.xml | 2 +- presto-kudu/pom.xml | 2 +- presto-local-file/pom.xml | 2 +- presto-main/pom.xml | 2 +- presto-matching/pom.xml | 2 +- presto-memory-context/pom.xml | 2 +- presto-memory/pom.xml | 2 +- presto-ml/pom.xml | 2 +- presto-mongodb/pom.xml | 2 +- presto-mysql/pom.xml | 2 +- presto-orc/pom.xml | 2 +- presto-parquet/pom.xml | 2 +- presto-parser/pom.xml | 2 +- presto-password-authenticators/pom.xml | 2 +- presto-pinot-toolkit/pom.xml | 2 +- presto-pinot/pom.xml | 2 +- presto-plugin-toolkit/pom.xml | 2 +- presto-postgresql/pom.xml | 2 +- presto-product-tests/pom.xml | 2 +- presto-proxy/pom.xml | 2 +- presto-raptor/pom.xml | 2 +- presto-rcfile/pom.xml | 2 +- presto-record-decoder/pom.xml | 2 +- presto-redis/pom.xml | 2 +- presto-redshift/pom.xml | 2 +- presto-resource-group-managers/pom.xml | 2 +- presto-server-rpm/pom.xml | 2 +- presto-server/pom.xml | 2 +- presto-session-property-managers/pom.xml | 2 +- presto-spark-base/pom.xml | 2 +- presto-spark-classloader-interface/pom.xml | 2 +- presto-spark-launcher/pom.xml | 2 +- presto-spark-package/pom.xml | 2 +- presto-spark-testing/pom.xml | 2 +- presto-spark/pom.xml | 2 +- presto-spi/pom.xml | 2 +- presto-sqlserver/pom.xml | 2 +- presto-teradata-functions/pom.xml | 2 +- presto-testing-docker/pom.xml | 2 +- presto-testing-server-launcher/pom.xml | 2 +- presto-tests/pom.xml | 2 +- presto-thrift-connector-api/pom.xml | 2 +- presto-thrift-connector/pom.xml | 2 +- presto-thrift-testing-server/pom.xml | 2 +- presto-tpcds/pom.xml | 2 +- presto-tpch/pom.xml | 2 +- presto-verifier/pom.xml | 2 +- 77 files changed, 77 insertions(+), 77 deletions(-) diff --git a/pom.xml b/pom.xml index e1c0154e0045c..be9d02063e2c4 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT pom presto-root diff --git a/presto-accumulo/pom.xml b/presto-accumulo/pom.xml index a8f84c2aeb6d2..2a5e320f9e1d0 100644 --- a/presto-accumulo/pom.xml +++ b/presto-accumulo/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-accumulo diff --git a/presto-array/pom.xml b/presto-array/pom.xml index a9ea5461a0027..0cea759a43049 100644 --- a/presto-array/pom.xml +++ b/presto-array/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-array diff --git a/presto-atop/pom.xml b/presto-atop/pom.xml index 6865544ec72a0..cd643dd25648b 100644 --- a/presto-atop/pom.xml +++ b/presto-atop/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-atop diff --git a/presto-base-jdbc/pom.xml b/presto-base-jdbc/pom.xml index bf374db187a44..b33c9403d8460 100644 --- a/presto-base-jdbc/pom.xml +++ b/presto-base-jdbc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-base-jdbc diff --git a/presto-benchmark-driver/pom.xml b/presto-benchmark-driver/pom.xml index a818f7f39aa53..fe31cbcdb7415 100644 --- a/presto-benchmark-driver/pom.xml +++ b/presto-benchmark-driver/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-benchmark-driver diff --git a/presto-benchmark-runner/pom.xml b/presto-benchmark-runner/pom.xml index 408bd1a5787e1..71924e30c4122 100644 --- a/presto-benchmark-runner/pom.xml +++ b/presto-benchmark-runner/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-benchmark-runner diff --git a/presto-benchmark/pom.xml b/presto-benchmark/pom.xml index 5396ab9076c3f..e45b440505076 100644 --- a/presto-benchmark/pom.xml +++ b/presto-benchmark/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-benchmark diff --git a/presto-benchto-benchmarks/pom.xml b/presto-benchto-benchmarks/pom.xml index ccf7e168325bc..b834c0d995b53 100644 --- a/presto-benchto-benchmarks/pom.xml +++ b/presto-benchto-benchmarks/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-benchto-benchmarks diff --git a/presto-blackhole/pom.xml b/presto-blackhole/pom.xml index 712e82eeeffc9..6a067199d8739 100644 --- a/presto-blackhole/pom.xml +++ b/presto-blackhole/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-blackhole diff --git a/presto-bytecode/pom.xml b/presto-bytecode/pom.xml index e249d37bbe521..a63a0e54ecd9d 100644 --- a/presto-bytecode/pom.xml +++ b/presto-bytecode/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-bytecode diff --git a/presto-cache/pom.xml b/presto-cache/pom.xml index 1a1ef238eef84..9a12e18a30153 100644 --- a/presto-cache/pom.xml +++ b/presto-cache/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-cache diff --git a/presto-cassandra/pom.xml b/presto-cassandra/pom.xml index af8a530386966..08b4319bb192f 100644 --- a/presto-cassandra/pom.xml +++ b/presto-cassandra/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-cassandra diff --git a/presto-cli/pom.xml b/presto-cli/pom.xml index 89fa5317be319..2255877b03733 100644 --- a/presto-cli/pom.xml +++ b/presto-cli/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-cli diff --git a/presto-client/pom.xml b/presto-client/pom.xml index 9513c009b8f0f..4174c98442733 100644 --- a/presto-client/pom.xml +++ b/presto-client/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-client diff --git a/presto-docs/pom.xml b/presto-docs/pom.xml index 5845c1f3ced7f..775e3ac104dfb 100644 --- a/presto-docs/pom.xml +++ b/presto-docs/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-docs diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml index fef257f4473d0..c9a35b0f94cbb 100644 --- a/presto-druid/pom.xml +++ b/presto-druid/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-druid diff --git a/presto-elasticsearch/pom.xml b/presto-elasticsearch/pom.xml index 7a4fe9b03f0f9..762231d577a2c 100644 --- a/presto-elasticsearch/pom.xml +++ b/presto-elasticsearch/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-elasticsearch Presto - Elasticsearch Connector diff --git a/presto-example-http/pom.xml b/presto-example-http/pom.xml index ebe0e8252ecfe..d078028d92e75 100644 --- a/presto-example-http/pom.xml +++ b/presto-example-http/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-example-http diff --git a/presto-expressions/pom.xml b/presto-expressions/pom.xml index f9187fb0067cf..565a169aebbb1 100644 --- a/presto-expressions/pom.xml +++ b/presto-expressions/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-expressions diff --git a/presto-function-namespace-managers/pom.xml b/presto-function-namespace-managers/pom.xml index 97828a31ac66f..9769e3b7b4007 100644 --- a/presto-function-namespace-managers/pom.xml +++ b/presto-function-namespace-managers/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-geospatial-toolkit/pom.xml b/presto-geospatial-toolkit/pom.xml index dca91ddde4a1f..423bb1335064f 100644 --- a/presto-geospatial-toolkit/pom.xml +++ b/presto-geospatial-toolkit/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-geospatial-toolkit diff --git a/presto-geospatial/pom.xml b/presto-geospatial/pom.xml index c5274ace46d0f..38cddc8aaca34 100644 --- a/presto-geospatial/pom.xml +++ b/presto-geospatial/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-geospatial diff --git a/presto-hive-common/pom.xml b/presto-hive-common/pom.xml index f272b84e2f18c..3f6657fb6eca2 100644 --- a/presto-hive-common/pom.xml +++ b/presto-hive-common/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT diff --git a/presto-hive-hadoop2/pom.xml b/presto-hive-hadoop2/pom.xml index 457b2a6803081..cf4e1cc09904a 100644 --- a/presto-hive-hadoop2/pom.xml +++ b/presto-hive-hadoop2/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-hive-hadoop2 diff --git a/presto-hive-metastore/pom.xml b/presto-hive-metastore/pom.xml index 0ebfe02a71ef3..0309874c920ef 100644 --- a/presto-hive-metastore/pom.xml +++ b/presto-hive-metastore/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-hive-metastore diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index c1347d54f8032..c5b863d6f1062 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-hive diff --git a/presto-i18n-functions/pom.xml b/presto-i18n-functions/pom.xml index d777d9e9d7e23..f93c344167dc6 100644 --- a/presto-i18n-functions/pom.xml +++ b/presto-i18n-functions/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-i18n-functions diff --git a/presto-jdbc/pom.xml b/presto-jdbc/pom.xml index 1e9858bb81a44..77784b46351bf 100644 --- a/presto-jdbc/pom.xml +++ b/presto-jdbc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-jdbc diff --git a/presto-jmx/pom.xml b/presto-jmx/pom.xml index b7f7a272aaee1..43c55108a3e58 100644 --- a/presto-jmx/pom.xml +++ b/presto-jmx/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-jmx diff --git a/presto-kafka/pom.xml b/presto-kafka/pom.xml index 0b2e432da8b69..8b8803641b44c 100644 --- a/presto-kafka/pom.xml +++ b/presto-kafka/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-kafka diff --git a/presto-kudu/pom.xml b/presto-kudu/pom.xml index 3423dad29a578..50bec4c5e3576 100644 --- a/presto-kudu/pom.xml +++ b/presto-kudu/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-kudu diff --git a/presto-local-file/pom.xml b/presto-local-file/pom.xml index b4fd459758568..095f1cea336a2 100644 --- a/presto-local-file/pom.xml +++ b/presto-local-file/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-local-file diff --git a/presto-main/pom.xml b/presto-main/pom.xml index e3675347c322b..cf6acd56404d7 100644 --- a/presto-main/pom.xml +++ b/presto-main/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-main diff --git a/presto-matching/pom.xml b/presto-matching/pom.xml index ec6bcf95d0ede..ac872d02ca1f1 100644 --- a/presto-matching/pom.xml +++ b/presto-matching/pom.xml @@ -18,7 +18,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-matching diff --git a/presto-memory-context/pom.xml b/presto-memory-context/pom.xml index 075822c45fa7c..e068e4c446d8a 100644 --- a/presto-memory-context/pom.xml +++ b/presto-memory-context/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-memory-context diff --git a/presto-memory/pom.xml b/presto-memory/pom.xml index 736643a6fc685..33f544d81010b 100644 --- a/presto-memory/pom.xml +++ b/presto-memory/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-memory diff --git a/presto-ml/pom.xml b/presto-ml/pom.xml index ec6a451b44e6b..2cbba25a140f3 100644 --- a/presto-ml/pom.xml +++ b/presto-ml/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-ml diff --git a/presto-mongodb/pom.xml b/presto-mongodb/pom.xml index 8d1e9cb3f7d3b..6fa9de509332f 100644 --- a/presto-mongodb/pom.xml +++ b/presto-mongodb/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-mongodb diff --git a/presto-mysql/pom.xml b/presto-mysql/pom.xml index b7ff7643793c9..14d5470e809ee 100644 --- a/presto-mysql/pom.xml +++ b/presto-mysql/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-mysql diff --git a/presto-orc/pom.xml b/presto-orc/pom.xml index fa15ba7cfd7c9..75123de9cce40 100644 --- a/presto-orc/pom.xml +++ b/presto-orc/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-orc diff --git a/presto-parquet/pom.xml b/presto-parquet/pom.xml index 608fcf19d243b..84518aa9bd4ba 100644 --- a/presto-parquet/pom.xml +++ b/presto-parquet/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-parquet diff --git a/presto-parser/pom.xml b/presto-parser/pom.xml index b94e591c3811b..1968ff0e995dc 100644 --- a/presto-parser/pom.xml +++ b/presto-parser/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-parser diff --git a/presto-password-authenticators/pom.xml b/presto-password-authenticators/pom.xml index 490fb47c719ec..6703e469a5478 100644 --- a/presto-password-authenticators/pom.xml +++ b/presto-password-authenticators/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-password-authenticators diff --git a/presto-pinot-toolkit/pom.xml b/presto-pinot-toolkit/pom.xml index b6cc013f1c552..3b6a34c98c9bc 100644 --- a/presto-pinot-toolkit/pom.xml +++ b/presto-pinot-toolkit/pom.xml @@ -6,7 +6,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-pinot-toolkit diff --git a/presto-pinot/pom.xml b/presto-pinot/pom.xml index 9511fabc63506..13e3376f22f4f 100644 --- a/presto-pinot/pom.xml +++ b/presto-pinot/pom.xml @@ -6,7 +6,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-pinot diff --git a/presto-plugin-toolkit/pom.xml b/presto-plugin-toolkit/pom.xml index 99b62bfdf223a..be0fa37aafd03 100644 --- a/presto-plugin-toolkit/pom.xml +++ b/presto-plugin-toolkit/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-plugin-toolkit diff --git a/presto-postgresql/pom.xml b/presto-postgresql/pom.xml index 201730d1434cd..eec59b94b0465 100644 --- a/presto-postgresql/pom.xml +++ b/presto-postgresql/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-postgresql diff --git a/presto-product-tests/pom.xml b/presto-product-tests/pom.xml index 2276b6e089b73..876af29a64072 100644 --- a/presto-product-tests/pom.xml +++ b/presto-product-tests/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-product-tests diff --git a/presto-proxy/pom.xml b/presto-proxy/pom.xml index c7645a1cd7f3a..b4bd3613a2420 100644 --- a/presto-proxy/pom.xml +++ b/presto-proxy/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-proxy diff --git a/presto-raptor/pom.xml b/presto-raptor/pom.xml index 4d56488c4bf7e..a8127c88382bd 100644 --- a/presto-raptor/pom.xml +++ b/presto-raptor/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-raptor diff --git a/presto-rcfile/pom.xml b/presto-rcfile/pom.xml index c5cd095788711..1c554c9c43a91 100644 --- a/presto-rcfile/pom.xml +++ b/presto-rcfile/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-rcfile diff --git a/presto-record-decoder/pom.xml b/presto-record-decoder/pom.xml index 8ad64264895e1..92a4a5c752270 100644 --- a/presto-record-decoder/pom.xml +++ b/presto-record-decoder/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-record-decoder diff --git a/presto-redis/pom.xml b/presto-redis/pom.xml index c399dab103738..c37bc57ec6977 100644 --- a/presto-redis/pom.xml +++ b/presto-redis/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-redis diff --git a/presto-redshift/pom.xml b/presto-redshift/pom.xml index 46c0fb8fb7634..dd4dbcd5dbdf0 100644 --- a/presto-redshift/pom.xml +++ b/presto-redshift/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-redshift diff --git a/presto-resource-group-managers/pom.xml b/presto-resource-group-managers/pom.xml index 2115fb2f5e376..7fb12bd07f91c 100644 --- a/presto-resource-group-managers/pom.xml +++ b/presto-resource-group-managers/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-resource-group-managers diff --git a/presto-server-rpm/pom.xml b/presto-server-rpm/pom.xml index e6d55d05c818b..d701bca8ffa77 100644 --- a/presto-server-rpm/pom.xml +++ b/presto-server-rpm/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-server-rpm diff --git a/presto-server/pom.xml b/presto-server/pom.xml index 2393c3717f123..a7e6beebc1b9d 100644 --- a/presto-server/pom.xml +++ b/presto-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-server diff --git a/presto-session-property-managers/pom.xml b/presto-session-property-managers/pom.xml index 0580a3075a318..549de3fe115c0 100644 --- a/presto-session-property-managers/pom.xml +++ b/presto-session-property-managers/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-session-property-managers diff --git a/presto-spark-base/pom.xml b/presto-spark-base/pom.xml index 191fa380d0016..4e1145e45cfc4 100644 --- a/presto-spark-base/pom.xml +++ b/presto-spark-base/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-spark-classloader-interface/pom.xml b/presto-spark-classloader-interface/pom.xml index 7e637b6208424..42eb17fb19f8d 100644 --- a/presto-spark-classloader-interface/pom.xml +++ b/presto-spark-classloader-interface/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-spark-launcher/pom.xml b/presto-spark-launcher/pom.xml index 5fd9cb8dca6a1..67cd056d27448 100644 --- a/presto-spark-launcher/pom.xml +++ b/presto-spark-launcher/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-spark-package/pom.xml b/presto-spark-package/pom.xml index 64e5f1df0b586..4e5a52f426322 100644 --- a/presto-spark-package/pom.xml +++ b/presto-spark-package/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-spark-package diff --git a/presto-spark-testing/pom.xml b/presto-spark-testing/pom.xml index 110d0ecebd7e3..ff6ef4602ead7 100644 --- a/presto-spark-testing/pom.xml +++ b/presto-spark-testing/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-spark/pom.xml b/presto-spark/pom.xml index 05ba37911dac3..faba6cb956e23 100644 --- a/presto-spark/pom.xml +++ b/presto-spark/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-spi/pom.xml b/presto-spi/pom.xml index c4e8e8ec41768..4728bab333e04 100644 --- a/presto-spi/pom.xml +++ b/presto-spi/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-spi diff --git a/presto-sqlserver/pom.xml b/presto-sqlserver/pom.xml index c659624c619dc..4af305bffccb9 100644 --- a/presto-sqlserver/pom.xml +++ b/presto-sqlserver/pom.xml @@ -3,7 +3,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 diff --git a/presto-teradata-functions/pom.xml b/presto-teradata-functions/pom.xml index 4fa0247f4b952..4bbd8314b596a 100644 --- a/presto-teradata-functions/pom.xml +++ b/presto-teradata-functions/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-teradata-functions diff --git a/presto-testing-docker/pom.xml b/presto-testing-docker/pom.xml index f98d255d34603..d7141ce46e629 100644 --- a/presto-testing-docker/pom.xml +++ b/presto-testing-docker/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-testing-docker diff --git a/presto-testing-server-launcher/pom.xml b/presto-testing-server-launcher/pom.xml index 5cdccc209627c..104add6ba1c39 100644 --- a/presto-testing-server-launcher/pom.xml +++ b/presto-testing-server-launcher/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-testing-server-launcher diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index c9c76ee4f5117..b2f2af474c5e7 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -5,7 +5,7 @@ presto-root com.facebook.presto - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-tests diff --git a/presto-thrift-connector-api/pom.xml b/presto-thrift-connector-api/pom.xml index 036b141f9a0e1..34aa7738a1e6d 100644 --- a/presto-thrift-connector-api/pom.xml +++ b/presto-thrift-connector-api/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-thrift-connector-api diff --git a/presto-thrift-connector/pom.xml b/presto-thrift-connector/pom.xml index d929f7db6493c..5386b8d0ec303 100644 --- a/presto-thrift-connector/pom.xml +++ b/presto-thrift-connector/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-thrift-connector diff --git a/presto-thrift-testing-server/pom.xml b/presto-thrift-testing-server/pom.xml index ecc3e03f12f7a..33eb88b9fab79 100644 --- a/presto-thrift-testing-server/pom.xml +++ b/presto-thrift-testing-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-thrift-testing-server diff --git a/presto-tpcds/pom.xml b/presto-tpcds/pom.xml index 99986ce0f00b7..f2e5511f05c76 100644 --- a/presto-tpcds/pom.xml +++ b/presto-tpcds/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-tpcds diff --git a/presto-tpch/pom.xml b/presto-tpch/pom.xml index 7223b1c32ffa2..211f9ad78a3a0 100644 --- a/presto-tpch/pom.xml +++ b/presto-tpch/pom.xml @@ -4,7 +4,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-tpch diff --git a/presto-verifier/pom.xml b/presto-verifier/pom.xml index 3528e1965a846..ea006ada9e8dd 100644 --- a/presto-verifier/pom.xml +++ b/presto-verifier/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-verifier From 6eb0d35a718c8695f292d3f0991b1c680ca6bf3c Mon Sep 17 00:00:00 2001 From: Saumitra Shahapure Date: Sat, 22 Feb 2020 00:06:04 +0000 Subject: [PATCH 050/129] Add stats and cost rule for IntersectNode --- .../CostCalculatorWithEstimatedExchanges.java | 9 ++ .../presto/cost/IntersectStatsRule.java | 78 +++++++++ .../cost/PlanNodeStatsEstimateMath.java | 61 +++++-- .../presto/cost/StatsCalculatorModule.java | 1 + .../presto/sql/planner/plan/Patterns.java | 6 + .../presto/cost/TestIntersectStatsRule.java | 149 ++++++++++++++++++ .../iterative/rule/test/PlanBuilder.java | 7 + 7 files changed, 302 insertions(+), 9 deletions(-) create mode 100644 presto-main/src/main/java/com/facebook/presto/cost/IntersectStatsRule.java create mode 100644 presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java diff --git a/presto-main/src/main/java/com/facebook/presto/cost/CostCalculatorWithEstimatedExchanges.java b/presto-main/src/main/java/com/facebook/presto/cost/CostCalculatorWithEstimatedExchanges.java index 0cede994d16ae..f0c01a431cc38 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/CostCalculatorWithEstimatedExchanges.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/CostCalculatorWithEstimatedExchanges.java @@ -16,6 +16,7 @@ import com.facebook.presto.Session; import com.facebook.presto.spi.plan.AggregationNode; +import com.facebook.presto.spi.plan.IntersectNode; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.sql.planner.iterative.GroupReference; @@ -164,6 +165,14 @@ public LocalCostEstimate visitUnion(UnionNode node, Void context) return calculateRemoteGatherCost(inputSizeInBytes); } + @Override + public LocalCostEstimate visitIntersect(IntersectNode node, Void context) + { + // Similar to Union + double inputSizeInBytes = getStats(node).getOutputSizeInBytes(node.getOutputVariables()); + return calculateRemoteGatherCost(inputSizeInBytes); + } + private PlanNodeStatsEstimate getStats(PlanNode node) { return stats.getStats(node); diff --git a/presto-main/src/main/java/com/facebook/presto/cost/IntersectStatsRule.java b/presto-main/src/main/java/com/facebook/presto/cost/IntersectStatsRule.java new file mode 100644 index 0000000000000..c500ec8a6701e --- /dev/null +++ b/presto-main/src/main/java/com/facebook/presto/cost/IntersectStatsRule.java @@ -0,0 +1,78 @@ +/* + * 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 com.facebook.presto.cost; + +import com.facebook.presto.Session; +import com.facebook.presto.matching.Pattern; +import com.facebook.presto.spi.plan.IntersectNode; +import com.facebook.presto.spi.plan.PlanNode; +import com.facebook.presto.sql.planner.TypeProvider; +import com.facebook.presto.sql.planner.iterative.Lookup; + +import java.util.Optional; + +import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.addStatsAndIntersect; +import static com.facebook.presto.sql.planner.plan.Patterns.intersect; +import static com.google.common.base.Preconditions.checkArgument; + +public class IntersectStatsRule + extends SimpleStatsRule +{ + private static final Pattern PATTERN = intersect(); + + public IntersectStatsRule(StatsNormalizer normalizer) + { + super(normalizer); + } + + @Override + public Pattern getPattern() + { + return PATTERN; + } + + @Override + protected Optional doCalculate( + IntersectNode node, StatsProvider statsProvider, Lookup lookup, Session session, TypeProvider types) + { + checkArgument(!node.getSources().isEmpty(), "Empty intersection is not supported"); + + Optional estimate = Optional.empty(); + for (int i = 0; i < node.getSources().size(); i++) { + PlanNode source = node.getSources().get(i); + PlanNodeStatsEstimate sourceStats = statsProvider.getStats(source); + + PlanNodeStatsEstimate sourceStatsWithMappedSymbols = mapToOutputSymbols(sourceStats, node, i); + + if (estimate.isPresent()) { + estimate = Optional.of(addStatsAndIntersect(estimate.get(), sourceStatsWithMappedSymbols)); + } + else { + estimate = Optional.of(sourceStatsWithMappedSymbols); + } + } + + return estimate; + } + + private PlanNodeStatsEstimate mapToOutputSymbols(PlanNodeStatsEstimate estimate, IntersectNode node, int index) + { + PlanNodeStatsEstimate.Builder mapped = PlanNodeStatsEstimate.builder().setOutputRowCount(estimate.getOutputRowCount()); + node.getOutputVariables().forEach(variable -> mapped.addVariableStatistics( + variable, estimate.getVariableStatistics(node.getVariableMapping().get(variable).get(index)))); + + return mapped.build(); + } +} diff --git a/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimateMath.java b/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimateMath.java index 4af6fef590d31..c926d3769d78b 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimateMath.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimateMath.java @@ -165,35 +165,78 @@ public static PlanNodeStatsEstimate addStatsAndCollapseDistinctValues(PlanNodeSt return addStats(left, right, StatisticRange::addAndCollapseDistinctValues); } - private static PlanNodeStatsEstimate addStats(PlanNodeStatsEstimate left, PlanNodeStatsEstimate right, RangeAdditionStrategy strategy) + public static PlanNodeStatsEstimate addStatsAndIntersect(PlanNodeStatsEstimate left, PlanNodeStatsEstimate right) { if (left.isOutputRowCountUnknown() || right.isOutputRowCountUnknown()) { return PlanNodeStatsEstimate.unknown(); } PlanNodeStatsEstimate.Builder statsBuilder = PlanNodeStatsEstimate.builder(); - double newRowCount = left.getOutputRowCount() + right.getOutputRowCount(); + double estimatedRowCount = Math.min(left.getOutputRowCount(), right.getOutputRowCount()); + double rowCount = concat( + left.getVariablesWithKnownStatistics().stream(), + right.getVariablesWithKnownStatistics().stream()) + .distinct() + .map(symbol -> { + StatisticRange lstats = StatisticRange.from(left.getVariableStatistics(symbol)); + StatisticRange rstats = StatisticRange.from(right.getVariableStatistics(symbol)); + return Math.min( + left.getOutputRowCount() * lstats.overlapPercentWith(rstats), + right.getOutputRowCount() * rstats.overlapPercentWith(lstats)); + }).reduce(Math::min).orElse(estimatedRowCount); + + buildVariableStatistics(left, right, statsBuilder, rowCount, StatisticRange::intersect); + + return statsBuilder.setOutputRowCount(rowCount).build(); + } + private static PlanNodeStatsEstimate addStats( + PlanNodeStatsEstimate left, + PlanNodeStatsEstimate right, + RangeAdditionStrategy rangeAdder) + { + if (left.isOutputRowCountUnknown() || right.isOutputRowCountUnknown()) { + return PlanNodeStatsEstimate.unknown(); + } + + PlanNodeStatsEstimate.Builder statsBuilder = PlanNodeStatsEstimate.builder(); + double rowCount = left.getOutputRowCount() + right.getOutputRowCount(); + buildVariableStatistics(left, right, statsBuilder, rowCount, rangeAdder); + + return statsBuilder.setOutputRowCount(rowCount).build(); + } + + private static void buildVariableStatistics( + PlanNodeStatsEstimate left, + PlanNodeStatsEstimate right, + PlanNodeStatsEstimate.Builder statsBuilder, + double estimatedRowCount, + RangeAdditionStrategy rangeAdder) + { concat(left.getVariablesWithKnownStatistics().stream(), right.getVariablesWithKnownStatistics().stream()) .distinct() .forEach(symbol -> { VariableStatsEstimate symbolStats = VariableStatsEstimate.zero(); - if (newRowCount > 0) { + if (estimatedRowCount > 0) { symbolStats = addColumnStats( left.getVariableStatistics(symbol), left.getOutputRowCount(), right.getVariableStatistics(symbol), right.getOutputRowCount(), - newRowCount, - strategy); + estimatedRowCount, + rangeAdder); } statsBuilder.addVariableStatistics(symbol, symbolStats); }); - - return statsBuilder.setOutputRowCount(newRowCount).build(); } - private static VariableStatsEstimate addColumnStats(VariableStatsEstimate leftStats, double leftRows, VariableStatsEstimate rightStats, double rightRows, double newRowCount, RangeAdditionStrategy strategy) + private static VariableStatsEstimate addColumnStats( + VariableStatsEstimate leftStats, + double leftRows, + VariableStatsEstimate rightStats, + double rightRows, + double newRowCount, + RangeAdditionStrategy strategy) { checkArgument(newRowCount > 0, "newRowCount must be greater than zero"); @@ -205,7 +248,7 @@ private static VariableStatsEstimate addColumnStats(VariableStatsEstimate leftSt double nullsCountLeft = leftStats.getNullsFraction() * leftRows; double totalSizeLeft = (leftRows - nullsCountLeft) * leftStats.getAverageRowSize(); double totalSizeRight = (rightRows - nullsCountRight) * rightStats.getAverageRowSize(); - double newNullsFraction = (nullsCountLeft + nullsCountRight) / newRowCount; + double newNullsFraction = Math.min((nullsCountLeft + nullsCountRight) / newRowCount, 1); double newNonNullsRowCount = newRowCount * (1.0 - newNullsFraction); // FIXME, weights to average. left and right should be equal in most cases anyway diff --git a/presto-main/src/main/java/com/facebook/presto/cost/StatsCalculatorModule.java b/presto-main/src/main/java/com/facebook/presto/cost/StatsCalculatorModule.java index dd814698659c7..6cf33397cbe47 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/StatsCalculatorModule.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/StatsCalculatorModule.java @@ -61,6 +61,7 @@ public static StatsCalculator createNewStatsCalculator( rules.add(new UnnestStatsRule()); rules.add(new SortStatsRule()); rules.add(new SampleStatsRule(normalizer)); + rules.add(new IntersectStatsRule(normalizer)); return new ComposableStatsCalculator(rules.build()); } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/Patterns.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/Patterns.java index 93af99f5eb1a7..a68b59d7fc2d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/Patterns.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/Patterns.java @@ -17,6 +17,7 @@ import com.facebook.presto.matching.Property; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.FilterNode; +import com.facebook.presto.spi.plan.IntersectNode; import com.facebook.presto.spi.plan.LimitNode; import com.facebook.presto.spi.plan.MarkDistinctNode; import com.facebook.presto.spi.plan.PlanNode; @@ -159,6 +160,11 @@ public static Pattern union() return typeOf(UnionNode.class); } + public static Pattern intersect() + { + return typeOf(IntersectNode.class); + } + public static Pattern values() { return typeOf(ValuesNode.class); diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java new file mode 100644 index 0000000000000..dfe3269fb1534 --- /dev/null +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java @@ -0,0 +1,149 @@ +/* + * 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 com.facebook.presto.cost; + +import com.facebook.presto.spi.relation.VariableReferenceExpression; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableListMultimap; +import org.testng.annotations.Test; + +import static com.facebook.presto.spi.type.BigintType.BIGINT; + +public class TestIntersectStatsRule + extends BaseStatsCalculatorTest +{ + @Test + public void testIntersect() + { + // Test cases: + // i11 and i12 have separated low and high values, all known stats + // i21 and i22 have overlapping low and high values and unknown distinct values + // i31 has all known statistics and i32 has all null values + // i41 and i42 have exact same values + tester().assertStatsFor( + pb -> pb.intersect( + ImmutableListMultimap.builder() + .putAll(pb.variable("o1"), pb.variable("i11"), pb.variable("i21")) + .putAll(pb.variable("o2"), pb.variable("i12"), pb.variable("i22")) + .putAll(pb.variable("o3"), pb.variable("i13"), pb.variable("i23")) + .putAll(pb.variable("o4"), pb.variable("i14"), pb.variable("i24")) + .build(), + ImmutableList.of( + pb.values( + pb.variable("i11"), pb.variable("i12"), + pb.variable("i13"), pb.variable("i14")), + pb.values( + pb.variable("i21"), pb.variable("i22"), + pb.variable("i23"), pb.variable("i24")))) + ).withSourceStats(0, PlanNodeStatsEstimate.builder() + .setOutputRowCount(10) + .addVariableStatistics( + new VariableReferenceExpression("i11", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(1) + .setHighValue(10) + .setDistinctValuesCount(10) + .setNullsFraction(0) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i12", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(1) + .setHighValue(10) + .setDistinctValuesCount(10) + .setNullsFraction(0) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i13", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(1) + .setHighValue(10) + .setDistinctValuesCount(10) + .setNullsFraction(0) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i14", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(15) + .setHighValue(25) + .setDistinctValuesCount(10) + .setNullsFraction(0) + .build()).build()) + .withSourceStats(1, PlanNodeStatsEstimate.builder() + .setOutputRowCount(5) + .addVariableStatistics( + new VariableReferenceExpression("i21", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(1) + .setHighValue(10) + .setDistinctValuesCount(10) + .setNullsFraction(0) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i22", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(5) + .setHighValue(10) + .setDistinctValuesCount(3) + .setNullsFraction(0.4) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i23", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(7) + .setHighValue(15) + .setDistinctValuesCount(3) + .setNullsFraction(0) + .build()) + .addVariableStatistics( + new VariableReferenceExpression("i24", BIGINT), + VariableStatsEstimate.builder() + .setLowValue(20) + .setHighValue(25) + .setDistinctValuesCount(3) + .setNullsFraction(0) + .build()).build()) + .check(check -> check + .outputRowsCount(1.875) + .variableStats( + new VariableReferenceExpression("o1", BIGINT), + assertion -> assertion + .lowValue(1) + .highValue(10) + .distinctValuesCount(1.875) + .nullsFraction(0)) + .variableStats( + new VariableReferenceExpression("o2", BIGINT), + assertion -> assertion + .lowValue(5) + .highValue(10) + .distinctValuesCount(0.9375) + .nullsFraction(0.5)) + .variableStats( + new VariableReferenceExpression("o3", BIGINT), + assertion -> assertion + .lowValue(7) + .highValue(10) + .distinctValuesCount(1.875) + .nullsFraction(0)) + .variableStats( + new VariableReferenceExpression("o4", BIGINT), + assertion -> assertion + .lowValue(20) + .highValue(25) + .distinctValuesCount(1.875) + .nullsFraction(0))); + } +} diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java index 9a77cd109b1a1..a258f3ce513fc 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java @@ -29,6 +29,7 @@ import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; +import com.facebook.presto.spi.plan.IntersectNode; import com.facebook.presto.spi.plan.LimitNode; import com.facebook.presto.spi.plan.MarkDistinctNode; import com.facebook.presto.spi.plan.Ordering; @@ -763,6 +764,12 @@ public UnionNode union(ListMultimap outputsToInputs, List sources) + { + Map> mapping = fromListMultimap(outputsToInputs); + return new IntersectNode(idAllocator.getNextId(), sources, ImmutableList.copyOf(mapping.keySet()), mapping); + } + public TableWriterNode tableWriter(List columns, List columnNames, PlanNode source) { return new TableWriterNode( From dbf3a80c504efc569fb59e969ca60ac8739a8560 Mon Sep 17 00:00:00 2001 From: Devesh Agrawal Date: Tue, 28 Apr 2020 13:28:42 -0700 Subject: [PATCH 051/129] Handle pruned columns in a pushed down pinot table scan As an example, consider this query: ``` select count(*) from baseballstats group by teamid limit 10 ``` In this query, the pinot connector sees the plan: Project (count) -> Limit 10 -> Aggregation (teamid, count(*)) -> Scan baseballstats. Since projections cannot currently be pushed on top of aggregations, so only the plan until the limit is pushed down. The resulting plan looks like: Project(count) -> Pushed table scan node with PQL: "select count(*) from baseballstats group by teamid". Note that the pushed table scan will emit "teamid" and "count(*)". PruneUnreferencedOptimizer runs next and removes the "teamid" from the scan node. This creates a problem: we are emitting an extra column teamid in the PinotBrokerPageSource which the scan does not need. This PR attempts to handle this scenario: both in the broker and segment codepaths. It does so with a lot of plumbing: It remembers the original column handles when the PQL was generated in the PinotTableHandle. These are passed eventually to the page sources via the PinotSplit. The page source then checks which columns can be ignored or have been re-ordered. The broker page source already had some support for this (necessitated by the _hiddenColumnSet_ for handling group-by without aggregations) and I have merely generalized this support. It was also trivial to add this support to the segment page source. Added unit tests for these conditions in the pinot broker and segment page sources. --- .../presto/pinot/PinotBrokerPageSource.java | 123 +++++++++++++--- .../presto/pinot/PinotClusterInfoFetcher.java | 3 +- .../presto/pinot/PinotConnection.java | 3 +- .../facebook/presto/pinot/PinotMetadata.java | 3 +- .../presto/pinot/PinotPageSourceProvider.java | 1 + .../presto/pinot/PinotPlanOptimizer.java | 8 +- .../presto/pinot/PinotPushdownUtils.java | 2 +- .../presto/pinot/PinotSegmentPageSource.java | 95 +++++++----- .../com/facebook/presto/pinot/PinotSplit.java | 16 +- .../presto/pinot/PinotSplitManager.java | 21 +-- .../presto/pinot/PinotTableHandle.java | 16 +- .../com/facebook/presto/pinot/PinotUtils.java | 5 +- .../query/PinotQueryGeneratorContext.java | 3 +- .../pinot/TestPinotBrokerPageSource.java | 137 ++++++++++++++---- .../presto/pinot/TestPinotQueryBase.java | 20 +++ .../pinot/TestPinotSegmentPageSource.java | 55 ++++++- .../presto/pinot/TestPinotSplitManager.java | 16 +- 17 files changed, 402 insertions(+), 125 deletions(-) diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java index 4f75227faa78e..b4c33a7bb5ade 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java @@ -41,6 +41,8 @@ import java.io.IOException; import java.net.URI; +import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -75,6 +77,7 @@ public class PinotBrokerPageSource private final GeneratedPql brokerPql; private final PinotConfig pinotConfig; private final List columnHandles; + private final List expectedHandles; private final PinotClusterInfoFetcher clusterInfoFetcher; private final ConnectorSession session; private final ObjectMapper objectMapper; @@ -88,11 +91,13 @@ public PinotBrokerPageSource( ConnectorSession session, GeneratedPql brokerPql, List columnHandles, + List expectedHandles, PinotClusterInfoFetcher clusterInfoFetcher, ObjectMapper objectMapper) { this.pinotConfig = requireNonNull(pinotConfig, "pinot config is null"); this.brokerPql = requireNonNull(brokerPql, "broker is null"); + this.expectedHandles = requireNonNull(expectedHandles, "expected handles is null"); this.clusterInfoFetcher = requireNonNull(clusterInfoFetcher, "cluster info fetcher is null"); this.columnHandles = ImmutableList.copyOf(columnHandles); this.session = requireNonNull(session, "session is null"); @@ -118,6 +123,9 @@ private static Double parseDouble(String value) private void setValue(Type type, BlockBuilder blockBuilder, String value) { + if (type == null || blockBuilder == null) { + return; + } if (value == null) { blockBuilder.appendNull(); return; @@ -169,14 +177,21 @@ private void setValuesForGroupby( JsonNode group, String[] values) { + requireNonNull(group, "Expected valid group"); + requireNonNull(values, "Expected valid values in group by"); + checkState( + blockBuilders.size() == values.length + group.size(), + String.format( + "Expected pinot to return total of %d values for group by, but got only %d group-by-keys and %d values", + blockBuilders.size(), + group.size(), + values.length)); for (int i = 0; i < group.size(); i++) { - setValue(types.get(i), blockBuilders.get(i), group.get(i).asText()); + setValue(types.get(i), blockBuilders.get(i), asText(group.get(i))); } for (int i = 0; i < values.length; i++) { int metricColumnIndex = i + numGroupByClause; - if (metricColumnIndex < blockBuilders.size()) { - setValue(types.get(metricColumnIndex), blockBuilders.get(metricColumnIndex), values[i]); - } + setValue(types.get(metricColumnIndex), blockBuilders.get(metricColumnIndex), values[i]); } } @@ -213,27 +228,16 @@ public Page getNextPage() long start = System.nanoTime(); try { - List expectedTypes = columnHandles.stream() - .map(PinotColumnHandle::getDataType) - .collect(Collectors.toList()); - PageBuilder pageBuilder = new PageBuilder(expectedTypes); - ImmutableList.Builder columnBlockBuilders = ImmutableList.builder(); - ImmutableList.Builder columnTypes = ImmutableList.builder(); - for (int i : brokerPql.getExpectedColumnIndices()) { - if (i == -1) { - continue; - } - BlockBuilder blockBuilder = pageBuilder.getBlockBuilder(i); - columnBlockBuilders.add(blockBuilder); - columnTypes.add(expectedTypes.get(i)); - } + BlockAndTypeBuilder blockAndTypeBuilder = new BlockAndTypeBuilder(columnHandles, brokerPql, expectedHandles); int counter = issuePqlAndPopulate( brokerPql.getTable(), brokerPql.getPql(), brokerPql.getGroupByClauses(), - columnBlockBuilders.build(), - columnTypes.build()); + Collections.unmodifiableList(blockAndTypeBuilder.getColumnBlockBuilders()), + Collections.unmodifiableList(blockAndTypeBuilder.getColumnTypes())); + + PageBuilder pageBuilder = blockAndTypeBuilder.getPageBuilder(); pageBuilder.declarePositions(counter); Page page = pageBuilder.build(); @@ -274,6 +278,12 @@ private int issuePqlAndPopulate( }); } + private static String asText(JsonNode node) + { + checkState(node.isValueNode()); + return node.isNull() ? null : node.asText(); + } + @VisibleForTesting public int populateFromPqlResults( String pql, @@ -350,12 +360,12 @@ public int populateFromPqlResults( String.format("Expected %d group by columns but got only a group of size %d (%s)", numGroupByClause, group.size(), group)); } if (groupToValue == null) { - singleAggregation[0] = row.get("value").asText(); + singleAggregation[0] = asText(row.get("value")); setValuesForGroupby(blockBuilders, types, numGroupByClause, group, singleAggregation); rowCount++; } else { - groupToValue.computeIfAbsent(group, (ignored) -> new String[aggregationResults.size()])[aggregationIndex] = row.get("value").asText(); + groupToValue.computeIfAbsent(group, (ignored) -> new String[aggregationResults.size()])[aggregationIndex] = asText(row.get("value")); } } } @@ -365,7 +375,7 @@ public int populateFromPqlResults( // simple aggregation // TODO: Validate that this is expected semantically checkState(numGroupByClause == 0, "Expected no group by columns in pinot"); - setValue(types.get(aggregationIndex), blockBuilders.get(aggregationIndex), result.get("value").asText()); + setValue(types.get(aggregationIndex), blockBuilders.get(aggregationIndex), asText(result.get("value"))); rowCount = 1; } } @@ -394,7 +404,7 @@ else if (selectionResults != null) { String.format("Expected row of %d columns", blockBuilders.size())); } for (int columnNumber = 0; columnNumber < blockBuilders.size(); columnNumber++) { - setValue(types.get(columnNumber), blockBuilders.get(columnNumber), result.get(columnNumber).asText()); + setValue(types.get(columnNumber), blockBuilders.get(columnNumber), asText(result.get(columnNumber))); } } rowCount = results.size(); @@ -421,4 +431,69 @@ public void close() { finished = true; } + + @VisibleForTesting + static class BlockAndTypeBuilder + { + private final PageBuilder pageBuilder; + private final List columnBlockBuilders; + private final List columnTypes; + + public PageBuilder getPageBuilder() + { + return pageBuilder; + } + + public List getColumnBlockBuilders() + { + return columnBlockBuilders; + } + + public List getColumnTypes() + { + return columnTypes; + } + + @VisibleForTesting + public BlockAndTypeBuilder(List columnHandles, GeneratedPql brokerPql, List expectedColumnHandles) + { + // When we created the PQL, we came up with some column handles + // however other optimizers post-pushdown can come in and prune/re-order the required column handles + // so we need to map from the column handles the PQL corresponds to, to the actual column handles + // needed in the scan. + + List expectedTypes = columnHandles.stream() + .map(PinotColumnHandle::getDataType) + .collect(Collectors.toList()); + this.pageBuilder = new PageBuilder(expectedTypes); + checkState(brokerPql.getExpectedColumnIndices().size() == expectedColumnHandles.size()); + checkState(expectedColumnHandles.size() >= columnHandles.size()); + + // The expectedColumnHandles are the handles corresponding to the generated PQL + // However, the engine could end up requesting only a permutation/subset of those handles + // during the actual scan + + // Map the handles from planning time to the handles asked in the scan + // so that we know which columns to discard. + int[] handleMapping = new int[expectedColumnHandles.size()]; + for (int i = 0; i < handleMapping.length; ++i) { + handleMapping[i] = columnHandles.indexOf(expectedColumnHandles.get(i)); + } + + this.columnBlockBuilders = new ArrayList<>(); + this.columnTypes = new ArrayList<>(); + + for (int expectedColumnIndex : brokerPql.getExpectedColumnIndices()) { + // columnIndex is the index of this column in the current scan + // It is obtained from the mapping and can be -ve, which means that the + // expectedColumnIndex'th column returned by Pinot can be discarded. + int columnIndex = -1; + if (expectedColumnIndex >= 0) { + columnIndex = handleMapping[expectedColumnIndex]; + } + this.columnBlockBuilders.add(columnIndex >= 0 ? pageBuilder.getBlockBuilder(columnIndex) : null); + this.columnTypes.add(columnIndex >= 0 ? expectedTypes.get(columnIndex) : null); + } + } + } } diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotClusterInfoFetcher.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotClusterInfoFetcher.java index 7adb8863f09f5..9fbb954c40c08 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotClusterInfoFetcher.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotClusterInfoFetcher.java @@ -50,6 +50,7 @@ import java.util.stream.Collectors; import static com.facebook.airlift.http.client.StringResponseHandler.createStringResponseHandler; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_HTTP_ERROR; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_INVALID_CONFIGURATION; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNABLE_TO_FIND_BROKER; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNEXPECTED_RESPONSE; @@ -160,7 +161,7 @@ public String doHttpActionWithHeaders( } else { throw new PinotException( - PinotErrorCode.PINOT_HTTP_ERROR, + PINOT_HTTP_ERROR, Optional.empty(), String.format( "Unexpected response status: %d for request %s to url %s, with headers %s, full response %s", diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnection.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnection.java index b869c0251d3f9..99358f3adce2f 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnection.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnection.java @@ -28,6 +28,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNCLASSIFIED_ERROR; import static com.google.common.cache.CacheLoader.asyncReloading; import static java.util.Objects.requireNonNull; @@ -80,7 +81,7 @@ private static V getFromCache(LoadingCache cache, K key) return cache.get(key); } catch (ExecutionException e) { - throw new PinotException(PinotErrorCode.PINOT_UNCLASSIFIED_ERROR, Optional.empty(), "Cannot fetch from cache " + key, e.getCause()); + throw new PinotException(PINOT_UNCLASSIFIED_ERROR, Optional.empty(), "Cannot fetch from cache " + key, e.getCause()); } } diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotMetadata.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotMetadata.java index 7388818166532..81107f4408b3f 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotMetadata.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotMetadata.java @@ -38,6 +38,7 @@ import java.util.Set; import static com.facebook.presto.pinot.PinotColumnHandle.PinotColumnType.REGULAR; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNCLASSIFIED_ERROR; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; @@ -69,7 +70,7 @@ private String getPinotTableNameFromPrestoTableName(String prestoTableName) return pinotTableName; } } - throw new PinotException(PinotErrorCode.PINOT_UNCLASSIFIED_ERROR, Optional.empty(), "Unable to find the presto table " + prestoTableName + " in " + allTables); + throw new PinotException(PINOT_UNCLASSIFIED_ERROR, Optional.empty(), "Unable to find the presto table " + prestoTableName + " in " + allTables); } @Override diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPageSourceProvider.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPageSourceProvider.java index 323aa56c078cf..b2a07659ece23 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPageSourceProvider.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPageSourceProvider.java @@ -93,6 +93,7 @@ public ConnectorPageSource createPageSource( session, pinotSplit.getBrokerPql().get(), handles, + pinotSplit.getExpectedColumnHandles(), clusterInfoFetcher, objectMapper); default: diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java index 8251cb5113093..7c7d733d004ea 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java @@ -172,7 +172,13 @@ private Optional tryCreatingNewScanNode(PlanNode plan) boolean isQueryShort = pql.get().getGeneratedPql().isQueryShort(); TableHandle newTableHandle = new TableHandle( oldTableHandle.getConnectorId(), - new PinotTableHandle(pinotTableHandle.getConnectorId(), pinotTableHandle.getSchemaName(), pinotTableHandle.getTableName(), Optional.of(isQueryShort), Optional.of(pql.get().getGeneratedPql())), + new PinotTableHandle( + pinotTableHandle.getConnectorId(), + pinotTableHandle.getSchemaName(), + pinotTableHandle.getTableName(), + Optional.of(isQueryShort), + Optional.of(ImmutableList.copyOf(assignments.values())), + Optional.of(pql.get().getGeneratedPql())), oldTableHandle.getTransaction(), oldTableHandle.getLayout()); return Optional.of( diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java index ff0ce684ec439..c468d3e2eb3c2 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java @@ -119,7 +119,7 @@ public String toString() public static void checkSupported(boolean condition, String errorMessage, Object... errorMessageArgs) { if (!condition) { - throw new PinotException(PinotErrorCode.PINOT_UNSUPPORTED_EXPRESSION, Optional.empty(), String.format(errorMessage, errorMessageArgs)); + throw new PinotException(PINOT_UNSUPPORTED_EXPRESSION, Optional.empty(), String.format(errorMessage, errorMessageArgs)); } } diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java index 86c117043a1e5..f7cc85306cc94 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java @@ -37,6 +37,10 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_EXCEPTION; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_INSUFFICIENT_SERVER_RESPONSE; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_INVALID_PQL_GENERATED; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNCLASSIFIED_ERROR; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNSUPPORTED_COLUMN_TYPE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.IntegerType.INTEGER; @@ -53,17 +57,17 @@ public class PinotSegmentPageSource implements ConnectorPageSource { private static final Map PINOT_ERROR_CODE_MAP = ImmutableMap.of( - ErrorCode.PINOT_UNCLASSIFIED_ERROR, PinotErrorCode.PINOT_UNCLASSIFIED_ERROR, - ErrorCode.PINOT_INSUFFICIENT_SERVER_RESPONSE, PinotErrorCode.PINOT_INSUFFICIENT_SERVER_RESPONSE, - ErrorCode.PINOT_INVALID_PQL_GENERATED, PinotErrorCode.PINOT_INVALID_PQL_GENERATED); + ErrorCode.PINOT_UNCLASSIFIED_ERROR, PINOT_UNCLASSIFIED_ERROR, + ErrorCode.PINOT_INSUFFICIENT_SERVER_RESPONSE, PINOT_INSUFFICIENT_SERVER_RESPONSE, + ErrorCode.PINOT_INVALID_PQL_GENERATED, PINOT_INVALID_PQL_GENERATED); private final List columnHandles; + private final List columnTypes; private final PinotConfig pinotConfig; private final PinotSplit split; private final PinotScatterGatherQueryClient pinotQueryClient; private final ConnectorSession session; - private List columnTypes; // dataTableList stores the dataTable returned from each server. Each dataTable is constructed to a Page, and then destroyed to save memory. private LinkedList dataTableList = new LinkedList<>(); private long completedBytes; @@ -85,6 +89,9 @@ public PinotSegmentPageSource( this.pinotQueryClient = requireNonNull(pinotQueryClient, "pinotQueryClient is null"); this.columnHandles = requireNonNull(columnHandles, "columnHandles is null"); this.session = requireNonNull(session, "session is null"); + this.columnTypes = columnHandles.stream() + .map(PinotSegmentPageSource::getTypeForBlock) + .collect(Collectors.toList()); } private static void checkExceptions(DataTable dataTable, PinotSplit split) @@ -97,7 +104,18 @@ private static void checkExceptions(DataTable dataTable, PinotSplit split) } }); if (!exceptions.isEmpty()) { - throw new PinotException(PinotErrorCode.PINOT_EXCEPTION, split.getSegmentPql(), String.format("Encountered %d pinot exceptions for split %s: %s", exceptions.size(), split, exceptions)); + throw new PinotException( + PINOT_EXCEPTION, + split.getSegmentPql(), + String.format("Encountered %d pinot exceptions for split %s: %s", exceptions.size(), split, exceptions)); + } + int numColumnsExpected = split.getExpectedColumnHandles().size(); + int numColumnsActual = dataTable.getDataSchema().size(); + if (numColumnsActual != numColumnsExpected) { + throw new PinotException( + PINOT_EXCEPTION, + split.getSegmentPql(), + String.format("Expected pinot to contain %d columns but got %d: %s", numColumnsExpected, numColumnsActual, dataTable.getDataSchema())); } } @@ -151,14 +169,30 @@ public Page getNextPage() } currentDataTable = dataTableList.pop(); + // This is the list of handles we came up with when generating the PQL + // This could be a superset/permutation of the handles being requested in this scan + List expectedColumnHandles = split.getExpectedColumnHandles(); PageBuilder pageBuilder = new PageBuilder(columnTypes); // Note that declared positions in the Page should be the same with number of rows in each Block pageBuilder.declarePositions(currentDataTable.getDataTable().getNumberOfRows()); - for (int columnHandleIdx = 0; columnHandleIdx < columnHandles.size(); columnHandleIdx++) { - BlockBuilder blockBuilder = pageBuilder.getBlockBuilder(columnHandleIdx); - Type columnType = columnTypes.get(columnHandleIdx); + for (int columnHandleIndex = 0; columnHandleIndex < columnHandles.size(); columnHandleIndex++) { + BlockBuilder blockBuilder = pageBuilder.getBlockBuilder(columnHandleIndex); + Type columnType = columnTypes.get(columnHandleIndex); // Write a block for each column in the original order. - writeBlock(blockBuilder, columnType, columnHandleIdx); + PinotColumnHandle handle = columnHandles.get(columnHandleIndex); + + // map the handle needed by the scan to its index corresponding to the generated PQL + // All handles requested by the scan should be a subset of the expected handles + // ie., the expected column handles (corresponding to the generated PQL) can contain + // extra columns that we drop. + int indexReturnedByPinot = expectedColumnHandles.indexOf(handle); + if (indexReturnedByPinot < 0) { + throw new PinotException( + PINOT_INVALID_PQL_GENERATED, + split.getSegmentPql(), + String.format("Expected column handle %s to be present in the handles %s corresponding to the segment PQL", handle, expectedColumnHandles)); + } + writeBlock(blockBuilder, columnType, indexReturnedByPinot); } return pageBuilder.build(); @@ -187,10 +221,6 @@ private void fetchPinotData() estimatedMemoryUsageInBytes += estimatedTableSizeInBytes; }); - this.columnTypes = columnHandles - .stream() - .map(columnHandle -> getTypeForBlock(columnHandle)) - .collect(Collectors.toList()); isPinotDataFetched = true; } finally { @@ -200,8 +230,8 @@ private void fetchPinotData() private Map queryPinot(ConnectorSession session, PinotSplit split) { - String pql = split.getSegmentPql().orElseThrow(() -> new PinotException(PinotErrorCode.PINOT_INVALID_PQL_GENERATED, Optional.empty(), "Expected the segment split to contain the pql")); - String host = split.getSegmentHost().orElseThrow(() -> new PinotException(PinotErrorCode.PINOT_INVALID_PQL_GENERATED, Optional.empty(), "Expected the segment split to contain the host")); + String pql = split.getSegmentPql().orElseThrow(() -> new PinotException(PINOT_INVALID_PQL_GENERATED, Optional.empty(), "Expected the segment split to contain the pql")); + String host = split.getSegmentHost().orElseThrow(() -> new PinotException(PINOT_INVALID_PQL_GENERATED, Optional.empty(), "Expected the segment split to contain the host")); try { return ImmutableMap.copyOf( pinotQueryClient.queryPinotServerForDataTable( @@ -213,7 +243,7 @@ private Map queryPinot(ConnectorSession session, Pino PinotSessionProperties.getPinotRetryCount(session))); } catch (PinotScatterGatherQueryClient.PinotException pe) { - throw new PinotException(PINOT_ERROR_CODE_MAP.getOrDefault(pe.getErrorCode(), PinotErrorCode.PINOT_UNCLASSIFIED_ERROR), Optional.of(pql), String.format("Error when hitting host %s", host), pe); + throw new PinotException(PINOT_ERROR_CODE_MAP.getOrDefault(pe.getErrorCode(), PINOT_UNCLASSIFIED_ERROR), Optional.of(pql), String.format("Error when hitting host %s", host), pe); } } @@ -234,31 +264,33 @@ public void close() * * @param blockBuilder blockBuilder for the current column * @param columnType type of the column - * @param columnIdx column index + * @param columnIndex column index */ - private void writeBlock(BlockBuilder blockBuilder, Type columnType, int columnIdx) + private void writeBlock(BlockBuilder blockBuilder, Type columnType, int columnIndex) { Class javaType = columnType.getJavaType(); - ColumnDataType pinotColumnType = currentDataTable.getDataTable().getDataSchema().getColumnDataType(columnIdx); + ColumnDataType pinotColumnType = currentDataTable.getDataTable().getDataSchema().getColumnDataType(columnIndex); if (javaType.equals(boolean.class)) { - writeBooleanBlock(blockBuilder, columnType, columnIdx); + writeBooleanBlock(blockBuilder, columnType, columnIndex); } else if (javaType.equals(long.class)) { - writeLongBlock(blockBuilder, columnType, columnIdx); + writeLongBlock(blockBuilder, columnType, columnIndex); } else if (javaType.equals(double.class)) { - writeDoubleBlock(blockBuilder, columnType, columnIdx); + writeDoubleBlock(blockBuilder, columnType, columnIndex); } else if (javaType.equals(Slice.class)) { - writeSliceBlock(blockBuilder, columnType, columnIdx); + writeSliceBlock(blockBuilder, columnType, columnIndex); } else { throw new PrestoException( PINOT_UNSUPPORTED_COLUMN_TYPE, String.format( "Failed to write column %s. pinotColumnType %s, javaType %s", - columnHandles.get(columnIdx).getColumnName(), pinotColumnType, javaType)); + split.getExpectedColumnHandles().get(columnIndex).getColumnName(), + pinotColumnType, + javaType)); } } @@ -295,15 +327,9 @@ private void writeSliceBlock(BlockBuilder blockBuilder, Type columnType, int col } } - private Type getType(int columnIndex) - { - checkArgument(columnIndex < columnHandles.size(), "Invalid field index"); - return columnHandles.get(columnIndex).getDataType(); - } - - private boolean getBoolean(int rowIdx, int columnIndex) + private boolean getBoolean(int rowIndex, int columnIndex) { - return Boolean.getBoolean(currentDataTable.getDataTable().getString(rowIdx, columnIndex)); + return Boolean.getBoolean(currentDataTable.getDataTable().getString(rowIndex, columnIndex)); } private long getLong(int rowIndex, int columnIndex) @@ -391,11 +417,12 @@ private int getEstimatedColumnSizeInBytes(ColumnDataType dataType) private void checkColumnType(int columnIndex, Type expected) { - Type actual = getType(columnIndex); + checkArgument(columnIndex < split.getExpectedColumnHandles().size(), "Invalid field index"); + Type actual = split.getExpectedColumnHandles().get(columnIndex).getDataType(); checkArgument(actual.equals(expected), "Expected column %s to be type %s but is %s", columnIndex, expected, actual); } - private Type getTypeForBlock(PinotColumnHandle pinotColumnHandle) + private static Type getTypeForBlock(PinotColumnHandle pinotColumnHandle) { if (pinotColumnHandle.getDataType().equals(INTEGER)) { return BIGINT; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplit.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplit.java index c8315666a8090..298475a8f5f52 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplit.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplit.java @@ -34,6 +34,7 @@ public class PinotSplit { private final String connectorId; private final SplitType splitType; + private final List expectedColumnHandles; // Properties needed for broker split type private final Optional brokerPql; @@ -47,6 +48,7 @@ public class PinotSplit public PinotSplit( @JsonProperty("connectorId") String connectorId, @JsonProperty("splitType") SplitType splitType, + @JsonProperty("expectedColumnHandles") List expectedColumnHandles, @JsonProperty("brokerPql") Optional brokerPql, @JsonProperty("segmentPql") Optional segmentPql, @JsonProperty("segments") List segments, @@ -54,6 +56,7 @@ public PinotSplit( { this.connectorId = requireNonNull(connectorId, "connector id is null"); this.splitType = requireNonNull(splitType, "splitType id is null"); + this.expectedColumnHandles = requireNonNull(expectedColumnHandles, "expected column handles is null"); this.brokerPql = requireNonNull(brokerPql, "brokerPql is null"); this.segmentPql = requireNonNull(segmentPql, "table name is null"); this.segments = ImmutableList.copyOf(requireNonNull(segments, "segment is null")); @@ -70,22 +73,24 @@ public PinotSplit( } } - public static PinotSplit createBrokerSplit(String connectorId, PinotQueryGenerator.GeneratedPql brokerPql) + public static PinotSplit createBrokerSplit(String connectorId, List expectedColumnHandles, PinotQueryGenerator.GeneratedPql brokerPql) { return new PinotSplit( requireNonNull(connectorId, "connector id is null"), SplitType.BROKER, + expectedColumnHandles, Optional.of(requireNonNull(brokerPql, "brokerPql is null")), Optional.empty(), ImmutableList.of(), Optional.empty()); } - public static PinotSplit createSegmentSplit(String connectorId, String pql, List segments, String segmentHost) + public static PinotSplit createSegmentSplit(String connectorId, String pql, List expectedColumnHandles, List segments, String segmentHost) { return new PinotSplit( requireNonNull(connectorId, "connector id is null"), SplitType.SEGMENT, + expectedColumnHandles, Optional.empty(), Optional.of(requireNonNull(pql, "pql is null")), requireNonNull(segments, "segments are null"), @@ -134,6 +139,7 @@ public String toString() return toStringHelper(this) .add("connectorId", connectorId) .add("splitType", splitType) + .add("columnHandle", expectedColumnHandles) .add("segmentPql", segmentPql) .add("brokerPql", brokerPql) .add("segments", segments) @@ -141,6 +147,12 @@ public String toString() .toString(); } + @JsonProperty + public List getExpectedColumnHandles() + { + return expectedColumnHandles; + } + @Override public NodeSelectionStrategy getNodeSelectionStrategy() { diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplitManager.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplitManager.java index 34bb63bc83ac2..281c062a78880 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplitManager.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSplitManager.java @@ -38,6 +38,7 @@ import java.util.Optional; import java.util.function.Supplier; +import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNSUPPORTED_EXPRESSION; import static com.facebook.presto.pinot.PinotSplit.createBrokerSplit; import static com.facebook.presto.pinot.PinotSplit.createSegmentSplit; import static com.facebook.presto.pinot.query.PinotQueryGeneratorContext.TABLE_NAME_SUFFIX_TEMPLATE; @@ -59,14 +60,15 @@ public PinotSplitManager(ConnectorId connectorId, PinotConnection pinotPrestoCon this.pinotPrestoConnection = requireNonNull(pinotPrestoConnection, "pinotPrestoConnection is null"); } - protected ConnectorSplitSource generateSplitForBrokerBasedScan(GeneratedPql brokerPql) + protected ConnectorSplitSource generateSplitForBrokerBasedScan(GeneratedPql brokerPql, List expectedColumnHandles) { - return new FixedSplitSource(singletonList(createBrokerSplit(connectorId, brokerPql))); + return new FixedSplitSource(singletonList(createBrokerSplit(connectorId, expectedColumnHandles, brokerPql))); } protected ConnectorSplitSource generateSplitsForSegmentBasedScan( PinotTableLayoutHandle pinotLayoutHandle, - ConnectorSession session) + ConnectorSession session, + List expectedColumnHandles) { PinotTableHandle tableHandle = pinotLayoutHandle.getTable(); String tableName = tableHandle.getTableName(); @@ -76,12 +78,12 @@ protected ConnectorSplitSource generateSplitsForSegmentBasedScan( List splits = new ArrayList<>(); if (!routingTable.isEmpty()) { - GeneratedPql segmentPql = tableHandle.getPql().orElseThrow(() -> new PinotException(PinotErrorCode.PINOT_UNSUPPORTED_EXPRESSION, Optional.empty(), "Expected to find realtime and offline pql in " + tableHandle)); + GeneratedPql segmentPql = tableHandle.getPql().orElseThrow(() -> new PinotException(PINOT_UNSUPPORTED_EXPRESSION, Optional.empty(), "Expected to find realtime and offline pql in " + tableHandle)); PinotClusterInfoFetcher.TimeBoundary timeBoundary = pinotPrestoConnection.getTimeBoundary(tableName); String realtime = getSegmentPql(segmentPql, "_REALTIME", timeBoundary.getOnlineTimePredicate()); String offline = getSegmentPql(segmentPql, "_OFFLINE", timeBoundary.getOfflineTimePredicate()); - generateSegmentSplits(splits, routingTable, tableName, "_REALTIME", session, realtime); - generateSegmentSplits(splits, routingTable, tableName, "_OFFLINE", session, offline); + generateSegmentSplits(splits, expectedColumnHandles, routingTable, tableName, "_REALTIME", session, realtime); + generateSegmentSplits(splits, expectedColumnHandles, routingTable, tableName, "_OFFLINE", session, offline); } Collections.shuffle(splits); @@ -103,6 +105,7 @@ private String getSegmentPql(GeneratedPql basePql, String suffix, Optional splits, + List expectedColumnHandles, Map>> routingTable, String tableName, String tableNameSuffix, @@ -122,7 +125,7 @@ protected void generateSegmentSplits( // segments is already shuffled Iterables.partition(segments, numSegmentsInThisSplit).forEach( segmentsForThisSplit -> splits.add( - createSegmentSplit(connectorId, pql, segmentsForThisSplit, host))); + createSegmentSplit(connectorId, pql, expectedColumnHandles, segmentsForThisSplit, host))); }); } } @@ -183,10 +186,10 @@ public ConnectorSplitSource getSplits( if (PinotSessionProperties.isForbidSegmentQueries(session)) { throw errorSupplier.get(); } - return generateSplitsForSegmentBasedScan(pinotLayoutHandle, session); + return generateSplitsForSegmentBasedScan(pinotLayoutHandle, session, pinotTableHandle.getExpectedColumnHandles().orElseThrow(errorSupplier)); } else { - return generateSplitForBrokerBasedScan(pinotTableHandle.getPql().orElseThrow(errorSupplier)); + return generateSplitForBrokerBasedScan(pinotTableHandle.getPql().orElseThrow(errorSupplier), pinotTableHandle.getExpectedColumnHandles().orElseThrow(errorSupplier)); } } } diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotTableHandle.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotTableHandle.java index 0e7f134608339..fa07c3ea437ce 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotTableHandle.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotTableHandle.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -33,13 +34,14 @@ public final class PinotTableHandle private final String tableName; private final Optional isQueryShort; private final Optional pql; + private final Optional> expectedColumnHandles; public PinotTableHandle( String connectorId, String schemaName, String tableName) { - this(connectorId, schemaName, tableName, Optional.empty(), Optional.empty()); + this(connectorId, schemaName, tableName, Optional.empty(), Optional.empty(), Optional.empty()); } @JsonCreator @@ -48,6 +50,7 @@ public PinotTableHandle( @JsonProperty("schemaName") String schemaName, @JsonProperty("tableName") String tableName, @JsonProperty("isQueryShort") Optional isQueryShort, + @JsonProperty("expectedColumnHandles") Optional> expectedColumnHandles, @JsonProperty("pql") Optional pql) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); @@ -55,6 +58,7 @@ public PinotTableHandle( this.tableName = requireNonNull(tableName, "tableName is null"); this.isQueryShort = requireNonNull(isQueryShort, "safe to execute is null"); this.pql = requireNonNull(pql, "broker pql is null"); + this.expectedColumnHandles = requireNonNull(expectedColumnHandles, "expected column handles is null"); } @JsonProperty @@ -87,6 +91,12 @@ public Optional getIsQueryShort() return isQueryShort; } + @JsonProperty + public Optional> getExpectedColumnHandles() + { + return expectedColumnHandles; + } + public SchemaTableName toSchemaTableName() { return new SchemaTableName(schemaName, tableName); @@ -106,13 +116,14 @@ public boolean equals(Object o) Objects.equals(schemaName, that.schemaName) && Objects.equals(tableName, that.tableName) && Objects.equals(isQueryShort, that.isQueryShort) && + Objects.equals(expectedColumnHandles, that.expectedColumnHandles) && Objects.equals(pql, that.pql); } @Override public int hashCode() { - return Objects.hash(connectorId, schemaName, tableName, isQueryShort, pql); + return Objects.hash(connectorId, schemaName, tableName, isQueryShort, expectedColumnHandles, pql); } @Override @@ -123,6 +134,7 @@ public String toString() .add("schemaName", schemaName) .add("tableName", tableName) .add("isQueryShort", isQueryShort) + .add("expectedColumnHandles", expectedColumnHandles) .add("pql", pql) .toString(); } diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotUtils.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotUtils.java index 1f13c7e97b478..cf62f459efba3 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotUtils.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotUtils.java @@ -13,10 +13,9 @@ */ package com.facebook.presto.pinot; -import com.google.common.base.Preconditions; - import java.util.function.Function; +import static com.google.common.base.Preconditions.checkState; import static java.net.HttpURLConnection.HTTP_MULT_CHOICE; import static java.net.HttpURLConnection.HTTP_OK; @@ -34,7 +33,7 @@ static boolean isValidPinotHttpResponseCode(int status) public static T doWithRetries(int retries, Function caller) { PinotException firstError = null; - Preconditions.checkState(retries > 0, "Invalid num of retries %d", retries); + checkState(retries > 0, "Invalid num of retries %d", retries); for (int i = 0; i < retries; ++i) { try { return caller.apply(i); diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java index 64d6039bd9b21..fb383ce4a7490 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java @@ -358,7 +358,8 @@ else if (!groupByColumns.isEmpty()) { query += " " + limitKeyWord + " " + queryLimit; } - List indices = getIndicesMappingFromPinotSchemaToPrestoSchema(query, getAssignments()); + LinkedHashMap assignments = getAssignments(); + List indices = getIndicesMappingFromPinotSchemaToPrestoSchema(query, assignments); return new PinotQueryGenerator.GeneratedPql(tableName, query, indices, groupByColumns.size(), filter.isPresent(), isQueryShort); } diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java index 56034a7ad9f71..d7531be81470a 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java @@ -15,7 +15,6 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.pinot.query.PinotQueryGenerator; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.type.Type; @@ -34,7 +33,6 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static org.testng.Assert.assertEquals; @@ -45,6 +43,7 @@ public class TestPinotBrokerPageSource { private static PinotTableHandle pinotTable = new PinotTableHandle("connId", "schema", "tbl"); private final ObjectMapper objectMapper = new ObjectMapperProvider().get(); + private static PinotColumnHandle jobState = new PinotColumnHandle("jobState", VARCHAR, PinotColumnHandle.PinotColumnType.REGULAR); private static class PqlParsedInfo { @@ -113,37 +112,67 @@ public static Object[][] pqlResponsesProvider() return new Object[][] { {"SELECT count(*), sum(regionId) FROM eats_job_state GROUP BY jobState TOP 1000000", "{\"aggregationResults\":[{\"groupByResult\":[{\"value\":\"10646777\",\"group\":[\"CREATED\"]},{\"value\":\"9441201\",\"group\":[\"ASSIGNED\"]},{\"value\":\"5329962\",\"group\":[\"SUBMITTED_TO_BILLING\"]},{\"value\":\"5281666\",\"group\":[\"PICKUP_COMPLETED\"]},{\"value\":\"5225839\",\"group\":[\"OFFERED\"]},{\"value\":\"5088568\",\"group\":[\"READY\"]},{\"value\":\"5027369\",\"group\":[\"COMPLETED\"]},{\"value\":\"3677267\",\"group\":[\"SUBMITTED_TO_MANIFEST\"]},{\"value\":\"1559953\",\"group\":[\"SCHEDULED\"]},{\"value\":\"1532913\",\"group\":[\"ACCEPTED\"]},{\"value\":\"1532891\",\"group\":[\"RELEASED\"]},{\"value\":\"531719\",\"group\":[\"UNASSIGNED\"]},{\"value\":\"252977\",\"group\":[\"PREP_TIME_UPDATED\"]},{\"value\":\"243463\",\"group\":[\"CANCELED\"]},{\"value\":\"211553\",\"group\":[\"PAYMENT_PENDING\"]},{\"value\":\"148548\",\"group\":[\"PAYMENT_CONFIRMED\"]},{\"value\":\"108057\",\"group\":[\"UNFULFILLED_WARNED\"]},{\"value\":\"47043\",\"group\":[\"DELIVERY_FAILED\"]},{\"value\":\"30832\",\"group\":[\"UNFULFILLED\"]},{\"value\":\"18009\",\"group\":[\"SCHEDULE_ORDER_CREATED\"]},{\"value\":\"16459\",\"group\":[\"SCHEDULE_ORDER_ACCEPTED\"]},{\"value\":\"11086\",\"group\":[\"FAILED\"]},{\"value\":\"9976\",\"group\":[\"SCHEDULE_ORDER_OFFERED\"]},{\"value\":\"3094\",\"group\":[\"PAYMENT_FAILED\"]}],\"function\":\"count_star\",\"groupByColumns\":[\"jobState\"]},{\"groupByResult\":[{\"value\":\"3274799599.00000\",\"group\":[\"CREATED\"]},{\"value\":\"2926585674.00000\",\"group\":[\"ASSIGNED\"]},{\"value\":\"1645707788.00000\",\"group\":[\"SUBMITTED_TO_BILLING\"]},{\"value\":\"1614715326.00000\",\"group\":[\"OFFERED\"]},{\"value\":\"1608041994.00000\",\"group\":[\"PICKUP_COMPLETED\"]},{\"value\":\"1568036720.00000\",\"group\":[\"READY\"]},{\"value\":\"1541977381.00000\",\"group\":[\"COMPLETED\"]},{\"value\":\"1190457213.00000\",\"group\":[\"SUBMITTED_TO_MANIFEST\"]},{\"value\":\"430246171.00000\",\"group\":[\"SCHEDULED\"]},{\"value\":\"422020881.00000\",\"group\":[\"RELEASED\"]},{\"value\":\"421937782.00000\",\"group\":[\"ACCEPTED\"]},{\"value\":\"147557783.00000\",\"group\":[\"UNASSIGNED\"]},{\"value\":\"94882088.00000\",\"group\":[\"PREP_TIME_UPDATED\"]},{\"value\":\"86447788.00000\",\"group\":[\"CANCELED\"]},{\"value\":\"77505566.00000\",\"group\":[\"PAYMENT_PENDING\"]},{\"value\":\"53955037.00000\",\"group\":[\"PAYMENT_CONFIRMED\"]},{\"value\":\"36026660.00000\",\"group\":[\"UNFULFILLED_WARNED\"]},{\"value\":\"15306755.00000\",\"group\":[\"DELIVERY_FAILED\"]},{\"value\":\"8811788.00000\",\"group\":[\"UNFULFILLED\"]},{\"value\":\"5301567.00000\",\"group\":[\"SCHEDULE_ORDER_CREATED\"]},{\"value\":\"4855342.00000\",\"group\":[\"SCHEDULE_ORDER_ACCEPTED\"]},{\"value\":\"3113490.00000\",\"group\":[\"FAILED\"]},{\"value\":\"2811789.00000\",\"group\":[\"SCHEDULE_ORDER_OFFERED\"]},{\"value\":\"1053944.00000\",\"group\":[\"PAYMENT_FAILED\"]}],\"function\":\"sum_regionId\",\"groupByColumns\":[\"jobState\"]}],\"exceptions\":[],\"numServersQueried\":7,\"numServersResponded\":7,\"numDocsScanned\":55977222,\"numEntriesScannedInFilter\":0,\"numEntriesScannedPostFilter\":111954444,\"totalDocs\":55977222,\"numGroupsLimitReached\":false,\"timeUsedMs\":775,\"segmentStatistics\":[],\"traceInfo\":{}}", - ImmutableList.of(VARCHAR, BIGINT, BIGINT), Optional.empty()}, + ImmutableList.of(derived("count"), derived("sum"), jobState), + ImmutableList.of(2, 0, 1), + ImmutableList.of(derived("count"), derived("sum"), jobState), + Optional.empty()}, + {"SELECT count(*) FROM eats_job_state GROUP BY jobState TOP 1000000", // projecting group-by by without aggregate + "{\"traceInfo\":{},\"numEntriesScannedPostFilter\":55979949,\"numDocsScanned\":55979949,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"aggregationResults\":[{\"groupByResult\":[{\"value\":\"10647363\",\"group\":[\"CREATED\"]},{\"value\":\"9441638\",\"group\":[\"ASSIGNED\"]},{\"value\":\"5330203\",\"group\":[\"SUBMITTED_TO_BILLING\"]},{\"value\":\"5281905\",\"group\":[\"PICKUP_COMPLETED\"]},{\"value\":\"5226090\",\"group\":[\"OFFERED\"]},{\"value\":\"5088813\",\"group\":[\"READY\"]},{\"value\":\"5027589\",\"group\":[\"COMPLETED\"]},{\"value\":\"3677424\",\"group\":[\"SUBMITTED_TO_MANIFEST\"]},{\"value\":\"1560029\",\"group\":[\"SCHEDULED\"]},{\"value\":\"1533006\",\"group\":[\"ACCEPTED\"]},{\"value\":\"1532980\",\"group\":[\"RELEASED\"]},{\"value\":\"531745\",\"group\":[\"UNASSIGNED\"]},{\"value\":\"252989\",\"group\":[\"PREP_TIME_UPDATED\"]},{\"value\":\"243477\",\"group\":[\"CANCELED\"]},{\"value\":\"211571\",\"group\":[\"PAYMENT_PENDING\"]},{\"value\":\"148557\",\"group\":[\"PAYMENT_CONFIRMED\"]},{\"value\":\"108062\",\"group\":[\"UNFULFILLED_WARNED\"]},{\"value\":\"47048\",\"group\":[\"DELIVERY_FAILED\"]},{\"value\":\"30832\",\"group\":[\"UNFULFILLED\"]},{\"value\":\"18009\",\"group\":[\"SCHEDULE_ORDER_CREATED\"]},{\"value\":\"16461\",\"group\":[\"SCHEDULE_ORDER_ACCEPTED\"]},{\"value\":\"11086\",\"group\":[\"FAILED\"]},{\"value\":\"9978\",\"group\":[\"SCHEDULE_ORDER_OFFERED\"]},{\"value\":\"3094\",\"group\":[\"PAYMENT_FAILED\"]}],\"function\":\"count_star\",\"groupByColumns\":[\"jobState\"]}],\"exceptions\":[],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":402,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":55979949}", + ImmutableList.of(jobState), + ImmutableList.of(0, -1), + ImmutableList.of(jobState, derived("hidden_count")), + Optional.empty()}, + {"SELECT count(*) FROM eats_job_state GROUP BY jobState TOP 1000000", // projecting aggregate without group-by + "{\"traceInfo\":{},\"numEntriesScannedPostFilter\":55979949,\"numDocsScanned\":55979949,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"aggregationResults\":[{\"groupByResult\":[{\"value\":\"10647363\",\"group\":[\"CREATED\"]},{\"value\":\"9441638\",\"group\":[\"ASSIGNED\"]},{\"value\":\"5330203\",\"group\":[\"SUBMITTED_TO_BILLING\"]},{\"value\":\"5281905\",\"group\":[\"PICKUP_COMPLETED\"]},{\"value\":\"5226090\",\"group\":[\"OFFERED\"]},{\"value\":\"5088813\",\"group\":[\"READY\"]},{\"value\":\"5027589\",\"group\":[\"COMPLETED\"]},{\"value\":\"3677424\",\"group\":[\"SUBMITTED_TO_MANIFEST\"]},{\"value\":\"1560029\",\"group\":[\"SCHEDULED\"]},{\"value\":\"1533006\",\"group\":[\"ACCEPTED\"]},{\"value\":\"1532980\",\"group\":[\"RELEASED\"]},{\"value\":\"531745\",\"group\":[\"UNASSIGNED\"]},{\"value\":\"252989\",\"group\":[\"PREP_TIME_UPDATED\"]},{\"value\":\"243477\",\"group\":[\"CANCELED\"]},{\"value\":\"211571\",\"group\":[\"PAYMENT_PENDING\"]},{\"value\":\"148557\",\"group\":[\"PAYMENT_CONFIRMED\"]},{\"value\":\"108062\",\"group\":[\"UNFULFILLED_WARNED\"]},{\"value\":\"47048\",\"group\":[\"DELIVERY_FAILED\"]},{\"value\":\"30832\",\"group\":[\"UNFULFILLED\"]},{\"value\":\"18009\",\"group\":[\"SCHEDULE_ORDER_CREATED\"]},{\"value\":\"16461\",\"group\":[\"SCHEDULE_ORDER_ACCEPTED\"]},{\"value\":\"11086\",\"group\":[\"FAILED\"]},{\"value\":\"9978\",\"group\":[\"SCHEDULE_ORDER_OFFERED\"]},{\"value\":\"3094\",\"group\":[\"PAYMENT_FAILED\"]}],\"function\":\"count_star\",\"groupByColumns\":[\"jobState\"]}],\"exceptions\":[],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":402,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":55979949}", + ImmutableList.of(derived("count")), + ImmutableList.of(1, 0), + ImmutableList.of(derived("count"), jobState), + Optional.empty()}, {"SELECT count(*) FROM eats_job_state GROUP BY jobState TOP 1000000", "{\"traceInfo\":{},\"numEntriesScannedPostFilter\":55979949,\"numDocsScanned\":55979949,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"aggregationResults\":[{\"groupByResult\":[{\"value\":\"10647363\",\"group\":[\"CREATED\"]},{\"value\":\"9441638\",\"group\":[\"ASSIGNED\"]},{\"value\":\"5330203\",\"group\":[\"SUBMITTED_TO_BILLING\"]},{\"value\":\"5281905\",\"group\":[\"PICKUP_COMPLETED\"]},{\"value\":\"5226090\",\"group\":[\"OFFERED\"]},{\"value\":\"5088813\",\"group\":[\"READY\"]},{\"value\":\"5027589\",\"group\":[\"COMPLETED\"]},{\"value\":\"3677424\",\"group\":[\"SUBMITTED_TO_MANIFEST\"]},{\"value\":\"1560029\",\"group\":[\"SCHEDULED\"]},{\"value\":\"1533006\",\"group\":[\"ACCEPTED\"]},{\"value\":\"1532980\",\"group\":[\"RELEASED\"]},{\"value\":\"531745\",\"group\":[\"UNASSIGNED\"]},{\"value\":\"252989\",\"group\":[\"PREP_TIME_UPDATED\"]},{\"value\":\"243477\",\"group\":[\"CANCELED\"]},{\"value\":\"211571\",\"group\":[\"PAYMENT_PENDING\"]},{\"value\":\"148557\",\"group\":[\"PAYMENT_CONFIRMED\"]},{\"value\":\"108062\",\"group\":[\"UNFULFILLED_WARNED\"]},{\"value\":\"47048\",\"group\":[\"DELIVERY_FAILED\"]},{\"value\":\"30832\",\"group\":[\"UNFULFILLED\"]},{\"value\":\"18009\",\"group\":[\"SCHEDULE_ORDER_CREATED\"]},{\"value\":\"16461\",\"group\":[\"SCHEDULE_ORDER_ACCEPTED\"]},{\"value\":\"11086\",\"group\":[\"FAILED\"]},{\"value\":\"9978\",\"group\":[\"SCHEDULE_ORDER_OFFERED\"]},{\"value\":\"3094\",\"group\":[\"PAYMENT_FAILED\"]}],\"function\":\"count_star\",\"groupByColumns\":[\"jobState\"]}],\"exceptions\":[],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":402,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":55979949}", - ImmutableList.of(VARCHAR, BIGINT), Optional.empty()}, + ImmutableList.of(derived("count"), jobState), + ImmutableList.of(1, 0), + ImmutableList.of(derived("count"), jobState), + Optional.empty()}, {"SELECT count(*) FROM eats_job_state", "{\"traceInfo\":{},\"numEntriesScannedPostFilter\":0,\"numDocsScanned\":55981101,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"aggregationResults\":[{\"function\":\"count_star\",\"value\":\"55981101\"}],\"exceptions\":[],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":7,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":55981101}", - ImmutableList.of(BIGINT), Optional.empty()}, + ImmutableList.of(derived("count")), + ImmutableList.of(0), + ImmutableList.of(derived("count")), + Optional.empty()}, {"SELECT sum(regionId), count(*) FROM eats_job_state", "{\"traceInfo\":{},\"numEntriesScannedPostFilter\":55981641,\"numDocsScanned\":55981641,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"aggregationResults\":[{\"function\":\"sum_regionId\",\"value\":\"17183585871.00000\"},{\"function\":\"count_star\",\"value\":\"55981641\"}],\"exceptions\":[],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":549,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":55981641}", - ImmutableList.of(BIGINT, BIGINT), Optional.empty()}, + ImmutableList.of(derived("sum"), derived("count")), + ImmutableList.of(0, 1), + ImmutableList.of(derived("sum"), derived("count")), + Optional.empty()}, {"SELECT jobState, regionId FROM eats_job_state LIMIT 10", "{\"selectionResults\":{\"columns\":[\"jobState\",\"regionId\"],\"results\":[[\"CREATED\",\"197\"],[\"SUBMITTED_TO_BILLING\",\"227\"],[\"ASSIGNED\",\"188\"],[\"SCHEDULED\",\"1479\"],[\"CANCELED\",\"1708\"],[\"CREATED\",\"134\"],[\"CREATED\",\"12\"],[\"OFFERED\",\"30\"],[\"COMPLETED\",\"215\"],[\"CREATED\",\"7\"]]},\"exceptions\":[],\"numServersQueried\":7,\"numServersResponded\":7,\"numDocsScanned\":380,\"numEntriesScannedInFilter\":0,\"numEntriesScannedPostFilter\":760,\"totalDocs\":55988817,\"numGroupsLimitReached\":false,\"timeUsedMs\":2,\"segmentStatistics\":[],\"traceInfo\":{}}", - ImmutableList.of(VARCHAR, BIGINT), Optional.empty()}, + ImmutableList.of(jobState, regionId), + ImmutableList.of(0, 1), + ImmutableList.of(jobState, regionId), + Optional.empty()}, {"SELECT shoppingCartUUID, $validUntil, $validFrom, jobState, tenancy, accountUUID, vehicleViewId, $partition, clientUUID, orderJobUUID, productTypeUUID, demandJobUUID, regionId, workflowUUID, jobType, kafkaOffset, productUUID, timestamp, flowType, ts FROM eats_job_state LIMIT 10", "{\"selectionResults\":{\"columns\":[\"shoppingCartUUID\",\"$validUntil\",\"$validFrom\",\"jobState\",\"tenancy\",\"accountUUID\",\"vehicleViewId\",\"$partition\",\"clientUUID\",\"orderJobUUID\",\"productTypeUUID\",\"demandJobUUID\",\"regionId\",\"workflowUUID\",\"jobType\",\"kafkaOffset\",\"productUUID\",\"timestamp\",\"flowType\",\"ts\"],\"results\":[]},\"traceInfo\":{},\"numEntriesScannedPostFilter\":0,\"numDocsScanned\":0,\"numServersResponded\":7,\"numGroupsLimitReached\":false,\"exceptions\":[{\"errorCode\":200,\"message\":\"QueryExecutionError:\\njava.lang.NullPointerException\\n\\tat java.lang.Class.forName0(Native Method\\n\\tat\"}],\"numEntriesScannedInFilter\":0,\"timeUsedMs\":3,\"segmentStatistics\":[],\"numServersQueried\":7,\"totalDocs\":0}", - ImmutableList.of(), Optional.of(PinotException.class)}, + ImmutableList.of(), + ImmutableList.of(), + ImmutableList.of(), + Optional.of(PinotException.class)}, {"SELECT * from eats_utilization_summarized", "{\n" + " \"selectionResults\": {\n" + " \"columns\": [\"activeTrips\", \"numDrivers\", \"region\", \"rowtime\", \"secondsSinceEpoch\", \"utilization\", \"utilizedDrivers\", \"vehicleViewId\", \"windowEnd\", \"windowStart\"],\n" + " \"results\": [\n" + - " [\"0\", \"0\", \"foobar\", \"null\", \"4588780800\", \"-∞\", \"0\", \"20017545\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"8699\", \"11452\", \"doobar\", \"null\", \"4588780800\", \"0.730701685\", \"8368\", \"0\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"14\", \"zoobar\", \"null\", \"4588780800\", \"0.5\", \"7\", \"20014789\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"23\", \"moobar\", \"null\", \"4588780800\", \"0.4336180091\", \"10\", \"20009983\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"840\", \"koobar\", \"null\", \"4588780800\", \"0.6597985029\", \"554\", \"20006875\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"0\", \"loobar\", \"null\", \"4588780800\", \"-∞\", \"0\", \"20006291\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"15\", \"1832\", \"monkeybar\", \"null\", \"4588780800\", \"0.8792306185\", \"1610\", \"20004007\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"0\", \"donkeybar\", \"null\", \"4588780800\", \"-∞\", \"0\", \"0\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"1\", \"7\", \"horseybar\", \"null\", \"4588780800\", \"0.2857142985\", \"2\", \"20016753\", \"4588780740000\", \"4588780725000\"],\n" + - " [\"0\", \"130\", \"ginbar\", \"null\", \"4588780800\", \"0.8052611947\", \"105\", \"10000942\", \"4588780740000\", \"4588780725000\"]\n" + + " [\"0\", \"0\", \"foobar\", null, \"4588780800\", \"-∞\", \"0\", \"20017545\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"8699\", \"11452\", \"doobar\", null, \"4588780800\", \"0.730701685\", \"8368\", \"0\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"14\", \"zoobar\", null, \"4588780800\", \"0.5\", \"7\", \"20014789\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"23\", \"moobar\", null, \"4588780800\", \"0.4336180091\", \"10\", \"20009983\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"840\", \"koobar\", null, \"4588780800\", \"0.6597985029\", \"554\", \"20006875\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"0\", \"loobar\", null, \"4588780800\", \"-∞\", \"0\", \"20006291\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"15\", \"1832\", \"monkeybar\", null, \"4588780800\", \"0.8792306185\", \"1610\", \"20004007\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"0\", \"donkeybar\", null, \"4588780800\", \"-∞\", \"0\", \"0\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"1\", \"7\", \"horseybar\", null, \"4588780800\", \"0.2857142985\", \"2\", \"20016753\", \"4588780740000\", \"4588780725000\"],\n" + + " [\"0\", \"130\", \"ginbar\", null, \"4588780800\", \"0.8052611947\", \"105\", \"10000942\", \"4588780740000\", \"4588780725000\"]\n" + " ]\n" + " },\n" + " \"exceptions\": [],\n" + @@ -161,26 +190,64 @@ public static Object[][] pqlResponsesProvider() " \"segmentStatistics\": [],\n" + " \"traceInfo\": {}\n" + "}", - ImmutableList.of(BIGINT, BIGINT, VARCHAR, VARCHAR, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT, BIGINT), Optional.empty()} + ImmutableList.of(bigint("activeTrips"), bigint("numDrivers"), varchar("region"), bigint("rowtime"), secondsSinceEpoch, fraction("utilization"), bigint("utilizedDrivers"), bigint("vehicleViewId"), bigint("windowEnd"), bigint("windowStart")), + ImmutableList.of(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), + ImmutableList.of(bigint("activeTrips"), bigint("numDrivers"), varchar("region"), bigint("rowtime"), secondsSinceEpoch, fraction("utilization"), bigint("utilizedDrivers"), bigint("vehicleViewId"), bigint("windowEnd"), bigint("windowStart")), + Optional.empty()} }; } @Test(dataProvider = "pqlResponses") - public void testPopulateFromPql(String pql, String pqlResponse, List types, Optional> expectedError) + public void testPopulateFromPql(String pql, String pqlResponse, List actualHandles, + List expectedColumnIndices, + List expectedColumnHandles, + Optional> expectedError) throws IOException { PqlParsedInfo pqlParsedInfo = getBasicInfoFromPql(pqlResponse); - ImmutableList.Builder blockBuilders = ImmutableList.builder(); - PageBuilder pageBuilder = new PageBuilder(types); - PinotBrokerPageSource pageSource = getPinotBrokerPageSource(); - for (int i = 0; i < types.size(); i++) { - blockBuilders.add(pageBuilder.getBlockBuilder(i)); + PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator.GeneratedPql( + pinotTable.getTableName(), + pql, + expectedColumnIndices, + pqlParsedInfo.groupByColumns, + false, + false); + PinotBrokerPageSource pageSource = new PinotBrokerPageSource( + pinotConfig, + new TestingConnectorSession(ImmutableList.of()), + generatedPql, + actualHandles, + expectedColumnHandles, + new MockPinotClusterInfoFetcher(pinotConfig), + objectMapper); + PinotBrokerPageSource.BlockAndTypeBuilder blockAndTypeBuilder = new PinotBrokerPageSource.BlockAndTypeBuilder(actualHandles, generatedPql, expectedColumnHandles); + + validateExpectedColumnIndices(expectedColumnIndices, expectedColumnHandles); + List columnBlockBuilders = blockAndTypeBuilder.getColumnBlockBuilders(); + List columnTypes = blockAndTypeBuilder.getColumnTypes(); + + assertEquals(columnTypes.size(), columnBlockBuilders.size()); + + int numNonNullTypes = 0; + for (int i = 0; i < columnTypes.size(); i++) { + Type type = columnTypes.get(i); + BlockBuilder builder = columnBlockBuilders.get(i); + assertEquals(type == null, builder == null); + if (type != null) { + numNonNullTypes++; + } } + assertEquals(numNonNullTypes, actualHandles.size()); Optional thrown = Optional.empty(); int rows = -1; try { - rows = pageSource.populateFromPqlResults(pql, pqlParsedInfo.groupByColumns, blockBuilders.build(), types, pqlResponse); + rows = pageSource.populateFromPqlResults( + pql, + pqlParsedInfo.groupByColumns, + columnBlockBuilders, + columnTypes, + pqlResponse); } catch (PrestoException e) { thrown = Optional.of(e); @@ -190,16 +257,22 @@ public void testPopulateFromPql(String pql, String pqlResponse, List types Optional errorString = thrown.map(e -> Throwables.getStackTraceAsString(e)); assertEquals(thrownType, expectedError, String.format("Expected error %s, but got error of type %s: %s", expectedError, thrownType, errorString)); if (!expectedError.isPresent()) { - assertEquals(types.size(), pqlParsedInfo.columns); + assertEquals(expectedColumnIndices.size(), pqlParsedInfo.columns); assertEquals(rows, pqlParsedInfo.rows); } } - private PinotBrokerPageSource getPinotBrokerPageSource() + private void validateExpectedColumnIndices(List expectedColumnIndices, List expectedColumnHandles) { - List pinotColumnHandles = ImmutableList.of(regionId, fare, city, fare, secondsSinceEpoch); - PinotConfig pinotConfig = new PinotConfig(); - PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator.GeneratedPql(pinotTable.getTableName(), String.format("SELECT %s, %s FROM %s LIMIT %d", city.getColumnName(), regionId.getColumnName(), pinotTable.getTableName(), pinotConfig.getLimitLargeForSegment()), ImmutableList.of(0, 1), 0, false, true); - return new PinotBrokerPageSource(pinotConfig, new TestingConnectorSession(ImmutableList.of()), generatedPql, pinotColumnHandles, new MockPinotClusterInfoFetcher(pinotConfig), objectMapper); + int numValid = 0; + Set uniqueIndices = new HashSet<>(); + for (int expectedColumnIndex : expectedColumnIndices) { + assertTrue(expectedColumnIndex == -1 || expectedColumnIndex >= 0 && expectedColumnIndex < expectedColumnHandles.size()); + if (expectedColumnIndex >= 0) { + numValid++; + uniqueIndices.add(expectedColumnIndex); + } + } + assertEquals(numValid, uniqueIndices.size()); } } diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java index a68189b5ee466..b822119d3db44 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java @@ -232,4 +232,24 @@ protected PlanBuilder createPlanBuilder(SessionHolder sessionHolder) { return new PlanBuilder(sessionHolder.getSession(), new PlanNodeIdAllocator(), metadata); } + + protected static PinotColumnHandle derived(String name) + { + return new PinotColumnHandle(name, BIGINT, PinotColumnHandle.PinotColumnType.DERIVED); + } + + protected static PinotColumnHandle bigint(String name) + { + return new PinotColumnHandle(name, BIGINT, PinotColumnHandle.PinotColumnType.REGULAR); + } + + protected static PinotColumnHandle fraction(String name) + { + return new PinotColumnHandle(name, DOUBLE, PinotColumnHandle.PinotColumnType.REGULAR); + } + + protected static PinotColumnHandle varchar(String name) + { + return new PinotColumnHandle(name, VARCHAR, PinotColumnHandle.PinotColumnType.REGULAR); + } } diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java index d4dedd48d50fb..cbe9ccda5a8f6 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java @@ -151,14 +151,14 @@ public int getNumberOfRows() return numRows; } - private Object get(int rowIdx, int colIdx) + private Object get(int rowIndex, int columnIndex) { - return this.data[rowIdx][colIdx]; + return this.data[rowIndex][columnIndex]; } - private void set(int rowIdx, int colIdx, Object o) + private void set(int rowIndex, int columnIndex, Object o) { - this.data[rowIdx][colIdx] = o; + this.data[rowIndex][columnIndex] = o; } @Override @@ -192,9 +192,9 @@ public String getString(int rowIndex, int colIndex) } @Override - public T getObject(int rowIdx, int colIdx) + public T getObject(int rowIndex, int columnIndex) { - return (T) get(rowIdx, colIdx); + return (T) get(rowIndex, columnIndex); } @Override @@ -327,6 +327,47 @@ public Map queryPinotServerForDataTable(String pql, S } } + @Test + public void testPrunedColumns() + { + PinotSessionProperties pinotSessionProperties = new PinotSessionProperties(pinotConfig); + ConnectorSession session = new TestingConnectorSession(pinotSessionProperties.getSessionProperties()); + List dataTables = IntStream.range(0, 3).mapToObj(i -> createDataTableWithAllTypes()).collect(toImmutableList()); + PinotScatterGatherQueryClient mockPinotQueryClient = new MockPinotScatterGatherQueryClient(new PinotScatterGatherQueryClient.Config( + pinotConfig.getIdleTimeout().toMillis(), + pinotConfig.getThreadPoolSize(), + pinotConfig.getMinConnectionsPerServer(), + pinotConfig.getMaxBacklogPerServer(), + pinotConfig.getMaxConnectionsPerServer()), dataTables); + List expectedColumnHandles = createPinotColumnHandlesWithAllTypes(); + PinotSplit mockPinotSplit = new PinotSplit(pinotConnectorId.toString(), PinotSplit.SplitType.SEGMENT, expectedColumnHandles, Optional.empty(), Optional.of("blah"), ImmutableList.of("seg"), Optional.of("host")); + + ImmutableList.Builder columnsSurvivingBuilder = ImmutableList.builder(); + for (int i = expectedColumnHandles.size() - 1; i >= 0; i--) { + if (i % 2 == 0) { + columnsSurvivingBuilder.add(i); + } + } + List columnsSurviving = columnsSurvivingBuilder.build(); + List handlesSurviving = columnsSurviving.stream().map(expectedColumnHandles::get).collect(toImmutableList()); + PinotSegmentPageSource pinotSegmentPageSource = new PinotSegmentPageSource(session, pinotConfig, mockPinotQueryClient, mockPinotSplit, handlesSurviving); + + for (int i = 0; i < dataTables.size(); ++i) { + Page page = requireNonNull(pinotSegmentPageSource.getNextPage(), "Expected a valid page"); + Assert.assertEquals(page.getChannelCount(), columnsSurviving.size()); + for (int j = 0; j < columnsSurviving.size(); ++j) { + Block block = page.getBlock(j); + int originalColumnIndex = columnsSurviving.get(j); + Type type = PinotColumnUtils.getPrestoTypeFromPinotType(getFieldSpec("dontcare", ALL_TYPES.get(originalColumnIndex)), false, false); + long maxHashCode = Long.MIN_VALUE; + for (int k = 0; k < NUM_ROWS; k++) { + maxHashCode = Math.max(type.hash(block, k), maxHashCode); + } + Assert.assertTrue(maxHashCode != 0, "Not all column values can have hash code 0"); + } + } + } + @Test public void testAllDataTypes() { @@ -339,8 +380,8 @@ public void testAllDataTypes() pinotConfig.getMinConnectionsPerServer(), pinotConfig.getMaxBacklogPerServer(), pinotConfig.getMaxConnectionsPerServer()), dataTables); - PinotSplit mockPinotSplit = new PinotSplit(pinotConnectorId.toString(), PinotSplit.SplitType.SEGMENT, Optional.empty(), Optional.of("blah"), ImmutableList.of("seg"), Optional.of("host")); List pinotColumnHandles = createPinotColumnHandlesWithAllTypes(); + PinotSplit mockPinotSplit = new PinotSplit(pinotConnectorId.toString(), PinotSplit.SplitType.SEGMENT, pinotColumnHandles, Optional.empty(), Optional.of("blah"), ImmutableList.of("seg"), Optional.of("host")); PinotSegmentPageSource pinotSegmentPageSource = new PinotSegmentPageSource(session, pinotConfig, mockPinotQueryClient, mockPinotSplit, pinotColumnHandles); for (int i = 0; i < dataTables.size(); ++i) { diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java index 80751d9f61977..6c27e72268075 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java @@ -61,8 +61,10 @@ private void testSegmentSplitsHelperNoFilter(PinotTableHandle table, int segment SessionHolder sessionHolder = new SessionHolder(pinotConfig); PlanBuilder planBuilder = createPlanBuilder(sessionHolder); PlanNode plan = tableScan(planBuilder, table, regionId, city, fare, secondsSinceEpoch); - PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator(pinotConfig, typeManager, functionMetadataManager, standardFunctionResolution).generate(plan, sessionHolder.getConnectorSession()).get().getGeneratedPql(); - PinotTableHandle pinotTableHandle = new PinotTableHandle(table.getConnectorId(), table.getSchemaName(), table.getTableName(), Optional.of(false), Optional.of(generatedPql)); + PinotQueryGenerator.PinotQueryGeneratorResult pinotQueryGeneratorResult = new PinotQueryGenerator(pinotConfig, typeManager, functionMetadataManager, standardFunctionResolution).generate(plan, sessionHolder.getConnectorSession()).get(); + List expectedHandles = ImmutableList.copyOf(pinotQueryGeneratorResult.getContext().getAssignments().values()); + PinotQueryGenerator.GeneratedPql generatedPql = pinotQueryGeneratorResult.getGeneratedPql(); + PinotTableHandle pinotTableHandle = new PinotTableHandle(table.getConnectorId(), table.getSchemaName(), table.getTableName(), Optional.of(false), Optional.of(expectedHandles), Optional.of(generatedPql)); List splits = getSplitsHelper(pinotTableHandle, segmentsPerSplit, false); assertSplits(splits, expectedNumSplits, SEGMENT); splits.forEach(s -> assertSegmentSplitWellFormed(s, expectFilter)); @@ -74,8 +76,10 @@ private void testSegmentSplitsHelperWithFilter(PinotTableHandle table, int segme SessionHolder sessionHolder = new SessionHolder(pinotConfig); PlanBuilder planBuilder = createPlanBuilder(sessionHolder); PlanNode plan = filter(planBuilder, tableScan(planBuilder, table, regionId, city, fare, secondsSinceEpoch), getRowExpression("city = 'Boston'", sessionHolder)); - PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator(pinotConfig, typeManager, functionMetadataManager, standardFunctionResolution).generate(plan, sessionHolder.getConnectorSession()).get().getGeneratedPql(); - PinotTableHandle pinotTableHandle = new PinotTableHandle(table.getConnectorId(), table.getSchemaName(), table.getTableName(), Optional.of(false), Optional.of(generatedPql)); + PinotQueryGenerator.PinotQueryGeneratorResult pinotQueryGeneratorResult = new PinotQueryGenerator(pinotConfig, typeManager, functionMetadataManager, standardFunctionResolution).generate(plan, sessionHolder.getConnectorSession()).get(); + List expectedHandles = ImmutableList.copyOf(pinotQueryGeneratorResult.getContext().getAssignments().values()); + PinotQueryGenerator.GeneratedPql generatedPql = pinotQueryGeneratorResult.getGeneratedPql(); + PinotTableHandle pinotTableHandle = new PinotTableHandle(table.getConnectorId(), table.getSchemaName(), table.getTableName(), Optional.of(false), Optional.of(expectedHandles), Optional.of(generatedPql)); List splits = getSplitsHelper(pinotTableHandle, segmentsPerSplit, false); assertSplits(splits, expectedNumSplits, SEGMENT); splits.forEach(s -> assertSegmentSplitWellFormed(s, true)); @@ -85,7 +89,7 @@ private void testSegmentSplitsHelperWithFilter(PinotTableHandle table, int segme public void testSplitsBroker() { PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator.GeneratedPql(realtimeOnlyTable.getTableName(), String.format("SELECT %s, COUNT(1) FROM %s GROUP BY %s TOP %d", city.getColumnName(), realtimeOnlyTable.getTableName(), city.getColumnName(), pinotConfig.getTopNLarge()), ImmutableList.of(0, 1), 1, false, true); - PinotTableHandle pinotTableHandle = new PinotTableHandle(realtimeOnlyTable.getConnectorId(), realtimeOnlyTable.getSchemaName(), realtimeOnlyTable.getTableName(), Optional.of(true), Optional.of(generatedPql)); + PinotTableHandle pinotTableHandle = new PinotTableHandle(realtimeOnlyTable.getConnectorId(), realtimeOnlyTable.getSchemaName(), realtimeOnlyTable.getTableName(), Optional.of(true), Optional.of(ImmutableList.of(city, derived("count"))), Optional.of(generatedPql)); List splits = getSplitsHelper(pinotTableHandle, 1, false); assertSplits(splits, 1, BROKER); } @@ -94,7 +98,7 @@ public void testSplitsBroker() public void testBrokerNonShortQuery() { PinotQueryGenerator.GeneratedPql generatedPql = new PinotQueryGenerator.GeneratedPql(realtimeOnlyTable.getTableName(), String.format("SELECT %s FROM %s", city.getColumnName(), realtimeOnlyTable.getTableName()), ImmutableList.of(0), 0, false, false); - PinotTableHandle pinotTableHandle = new PinotTableHandle(realtimeOnlyTable.getConnectorId(), realtimeOnlyTable.getSchemaName(), realtimeOnlyTable.getTableName(), Optional.of(false), Optional.of(generatedPql)); + PinotTableHandle pinotTableHandle = new PinotTableHandle(realtimeOnlyTable.getConnectorId(), realtimeOnlyTable.getSchemaName(), realtimeOnlyTable.getTableName(), Optional.of(false), Optional.of(ImmutableList.of(city)), Optional.of(generatedPql)); List splits = getSplitsHelper(pinotTableHandle, 1, true); assertSplits(splits, 1, BROKER); } From 659c0c2ca62d780bc638045b9eed2a53102d7378 Mon Sep 17 00:00:00 2001 From: James Sun Date: Mon, 4 May 2020 11:32:59 -0700 Subject: [PATCH 052/129] Lower startup-grace-period for TestRaptorIntegrationSmokeTestMySql TestRaptorIntegrationSmokeTestMySql is flaky due to long startup grace period. Lower it to 10 seconds. --- .../raptor/integration/TestRaptorIntegrationSmokeTestMySql.java | 1 + 1 file changed, 1 insertion(+) diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTestMySql.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTestMySql.java index eba1e9c8df190..fcbde97f2d8cf 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTestMySql.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTestMySql.java @@ -77,6 +77,7 @@ private static DistributedQueryRunner createRaptorMySqlQueryRunner(String mysqlU .put("storage.data-directory", new File(baseDir, "data").toURI().toString()) .put("storage.max-shard-rows", "2000") .put("backup.provider", "file") + .put("raptor.startup-grace-period", "10s") .put("backup.directory", new File(baseDir, "backup").getAbsolutePath()) .build(); From 3dd9704fc8bc8be4014876631aaaed55ad3c7cc5 Mon Sep 17 00:00:00 2001 From: Bhavani Hari Date: Fri, 1 May 2020 18:25:44 -0700 Subject: [PATCH 053/129] Fix getBlockView to use positionCount instead of outputPositionCount --- .../presto/hive/TestHivePushdownFilterQueries.java | 10 +++++++--- .../orc/reader/BooleanSelectiveStreamReader.java | 2 +- .../presto/orc/reader/ByteSelectiveStreamReader.java | 2 +- .../presto/orc/reader/DoubleSelectiveStreamReader.java | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java index 12ae8831d93e9..768a7bcc6c93d 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java @@ -670,7 +670,7 @@ public void testAllNullsInStruct() { List types = ImmutableList.of(BOOLEAN, TINYINT, SMALLINT, INTEGER, BIGINT, DOUBLE, REAL, VARCHAR, DATE); - String query = String.format("SELECT orderkey, CAST(ROW(%s, 1) AS ROW(%s, a INTEGER)) as struct FROM orders", + String query = String.format("SELECT orderkey, CAST(ROW(%s, orderkey) AS ROW(%s, orderkey INTEGER)) as struct FROM orders", types.stream() .map(type -> "null") .collect(joining(", ")), @@ -684,9 +684,13 @@ public void testAllNullsInStruct() for (String type : types) { assertQuery( format( - "SELECT struct.a, struct.null_%s FROM test_all_nulls_in_struct WHERE struct IS NOT NULL AND orderkey %% 2 = 0", + "SELECT struct.orderkey, struct.null_%s FROM test_all_nulls_in_struct WHERE struct IS NOT NULL AND orderkey %% 2 = 0", type.toLowerCase(getSession().getLocale())), - "SELECT 1, null FROM orders WHERE orderkey % 2 = 0"); + "SELECT orderkey, null FROM orders WHERE orderkey % 2 = 0"); + + assertQuery(format("SELECT orderkey from test_all_nulls_in_struct WHERE struct.null_%s is NULL AND struct.orderkey > 3000 " + + "AND length(CAST(struct.null_%s AS VARCHAR)) IS NULL", type.toLowerCase(getSession().getLocale()), type.toLowerCase(getSession().getLocale())), + "SELECT orderkey FROM orders WHERE orderkey > 3000"); } } finally { diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java index cd849fbb5e0c0..eed5eeec2c652 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java @@ -392,7 +392,7 @@ public BlockLease getBlockView(int[] positions, int positionCount) checkState(!valuesInUse, "BlockLease hasn't been closed yet"); if (allNulls) { - return newLease(new RunLengthEncodedBlock(NULL_BLOCK, outputPositionCount)); + return newLease(new RunLengthEncodedBlock(NULL_BLOCK, positionCount)); } boolean includeNulls = nullsAllowed && presentStream != null; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java index f50768466e646..923f23c8b6449 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java @@ -385,7 +385,7 @@ public BlockLease getBlockView(int[] positions, int positionCount) checkState(!valuesInUse, "BlockLease hasn't been closed yet"); if (allNulls) { - return newLease(new RunLengthEncodedBlock(NULL_BLOCK, outputPositionCount)); + return newLease(new RunLengthEncodedBlock(NULL_BLOCK, positionCount)); } boolean includeNulls = nullsAllowed && presentStream != null; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java index 90fb721f163ae..54a73b024feeb 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java @@ -388,7 +388,7 @@ public BlockLease getBlockView(int[] positions, int positionCount) checkState(!valuesInUse, "BlockLease hasn't been closed yet"); if (allNulls) { - return newLease(new RunLengthEncodedBlock(NULL_BLOCK, outputPositionCount)); + return newLease(new RunLengthEncodedBlock(NULL_BLOCK, positionCount)); } boolean includeNulls = nullsAllowed && presentStream != null; From 491bab7752f5c697669cb25d14c18cf0d0463abc Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Fri, 17 Apr 2020 16:50:40 -0400 Subject: [PATCH 054/129] Add adapters for PageCompressor and PageDecompressor --- .../pagefile/AirliftCompressorAdapter.java | 56 +++++++++++++++++++ .../pagefile/AirliftDecompressorAdapter.java | 50 +++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftCompressorAdapter.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftDecompressorAdapter.java diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftCompressorAdapter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftCompressorAdapter.java new file mode 100644 index 0000000000000..e31b4f4e73116 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftCompressorAdapter.java @@ -0,0 +1,56 @@ +/* + * 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 com.facebook.presto.hive.pagefile; + +import com.facebook.presto.spi.page.PageCompressor; +import io.airlift.compress.Compressor; + +import java.nio.ByteBuffer; + +import static java.util.Objects.requireNonNull; + +public class AirliftCompressorAdapter + implements PageCompressor +{ + private final Compressor compressor; + + public AirliftCompressorAdapter(Compressor compressor) + { + this.compressor = requireNonNull(compressor, "compressor is null"); + } + + @Override + public int maxCompressedLength(int uncompressedSize) + { + return compressor.maxCompressedLength(uncompressedSize); + } + + @Override + public int compress( + byte[] input, + int inputOffset, + int inputLength, + byte[] output, + int outputOffset, + int maxOutputLength) + { + return compressor.compress(input, inputOffset, inputLength, output, outputOffset, maxOutputLength); + } + + @Override + public void compress(ByteBuffer input, ByteBuffer output) + { + compressor.compress(input, output); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftDecompressorAdapter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftDecompressorAdapter.java new file mode 100644 index 0000000000000..6649b502a4476 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/AirliftDecompressorAdapter.java @@ -0,0 +1,50 @@ +/* + * 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 com.facebook.presto.hive.pagefile; + +import com.facebook.presto.spi.page.PageDecompressor; +import io.airlift.compress.Decompressor; + +import java.nio.ByteBuffer; + +import static java.util.Objects.requireNonNull; + +public class AirliftDecompressorAdapter + implements PageDecompressor +{ + private final Decompressor decompressor; + + public AirliftDecompressorAdapter(Decompressor decompressor) + { + this.decompressor = requireNonNull(decompressor, "decompressor is null"); + } + + @Override + public int decompress( + byte[] input, + int inputOffset, + int inputLength, + byte[] output, + int outputOffset, + int maxOutputLength) + { + return decompressor.decompress(input, inputOffset, inputLength, output, outputOffset, maxOutputLength); + } + + @Override + public void decompress(ByteBuffer input, ByteBuffer output) + { + decompressor.decompress(input, output); + } +} From e03790e14dd0b71903440e421b4283de22642791 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Thu, 23 Apr 2020 22:43:16 -0400 Subject: [PATCH 055/129] Support page compression in PageFileWriter --- .../presto/hive/pagefile/PageFileWriter.java | 4 +- .../hive/pagefile/PageFileWriterFactory.java | 53 ++++++++++++++++--- .../presto/hive/util/ConfigurationUtils.java | 3 ++ 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java index 018be561a0f7a..9c6d23fe96a8e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.hive.HiveFileWriter; import com.facebook.presto.orc.DataSink; import com.facebook.presto.spi.Page; @@ -35,12 +36,13 @@ public class PageFileWriter private static final int INSTANCE_SIZE = ClassLayout.parseClass(PageFileWriter.class).instanceSize(); private final PageWriter pageWriter; - private final Callable rollbackAction; private final PagesSerde pagesSerde; + private final Callable rollbackAction; public PageFileWriter( DataSink dataSink, PagesSerde pagesSerde, + HiveCompressionCodec compression, DataSize pageFileStripeMaxSize, Callable rollbackAction) { diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java index 55509a8b46f66..5c3d7bee3dba7 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.pagefile; import com.facebook.presto.hive.HdfsEnvironment; +import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.hive.HiveFileWriter; import com.facebook.presto.hive.HiveFileWriterFactory; import com.facebook.presto.hive.metastore.StorageFormat; @@ -22,8 +23,12 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; +import com.facebook.presto.spi.page.PageCompressor; +import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; import com.google.common.collect.ImmutableList; +import io.airlift.compress.snappy.SnappyCompressor; +import io.airlift.compress.snappy.SnappyDecompressor; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapred.JobConf; @@ -40,13 +45,17 @@ import static com.facebook.presto.hive.HiveSessionProperties.getPageFileStripeMaxSize; import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static com.facebook.presto.hive.pagefile.PageFileFooterOutput.createEmptyPageFileFooterOutput; +import static com.facebook.presto.hive.util.ConfigurationUtils.PAGE_FILE_COMPRESSION; +import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; +import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; +import static java.lang.String.format; import static java.util.Objects.requireNonNull; public class PageFileWriterFactory implements HiveFileWriterFactory { private final HdfsEnvironment hdfsEnvironment; - private final PagesSerde pagesSerde; + private final BlockEncodingSerde blockEncodingSerde; @Inject public PageFileWriterFactory( @@ -54,12 +63,7 @@ public PageFileWriterFactory( BlockEncodingSerde blockEncodingSerde) { this.hdfsEnvironment = requireNonNull(hdfsEnvironment, "hdfsEnvironment is null"); - - pagesSerde = new PagesSerde( - requireNonNull(blockEncodingSerde, "blockEncodingSerde is null"), - Optional.empty(), - Optional.empty(), - Optional.empty()); + this.blockEncodingSerde = requireNonNull(blockEncodingSerde, "blockEncodingSerde is null"); } @Override @@ -75,6 +79,14 @@ public Optional createFileWriter( return Optional.empty(); } + HiveCompressionCodec compression = HiveCompressionCodec.valueOf(configuration.get(PAGE_FILE_COMPRESSION)); + if (!compression.isSupportedStorageFormat(PAGEFILE)) { + throw new PrestoException( + GENERIC_USER_ERROR, + format("%s compression is not supported for %s", compression.name(), PAGEFILE.getOutputFormat())); + } + PagesSerde pagesSerde = createPagesSerdeForPageFile(blockEncodingSerde, Optional.of(compression)); + try { FileSystem fileSystem = hdfsEnvironment.getFileSystem(session.getUser(), path, configuration); DataSink dataSink = createPageDataSink(fileSystem, path); @@ -83,7 +95,7 @@ public Optional createFileWriter( fileSystem.delete(path, false); return null; }; - return Optional.of(new PageFileWriter(dataSink, pagesSerde, getPageFileStripeMaxSize(session), rollbackAction)); + return Optional.of(new PageFileWriter(dataSink, pagesSerde, compression, getPageFileStripeMaxSize(session), rollbackAction)); } catch (IOException e) { throw new PrestoException(HIVE_WRITER_OPEN_ERROR, "Error creating pagefile", e); @@ -104,6 +116,31 @@ public static void createEmptyPageFile( } } + public static PagesSerde createPagesSerdeForPageFile(BlockEncodingSerde blockEncodingSerde, Optional compressionCodec) + { + if (!compressionCodec.isPresent()) { + return new PagesSerde(blockEncodingSerde, Optional.empty(), Optional.empty(), Optional.empty()); + } + + PageCompressor pageCompressor = null; + PageDecompressor pageDecompressor = null; + + switch (compressionCodec.get()) { + case NONE: + break; + case SNAPPY: + pageCompressor = new AirliftCompressorAdapter(new SnappyCompressor()); + pageDecompressor = new AirliftDecompressorAdapter(new SnappyDecompressor()); + break; + default: + throw new PrestoException( + GENERIC_INTERNAL_ERROR, + format("%s compression is not supported for %s", compressionCodec.get().name(), PAGEFILE.getOutputFormat())); + } + + return new PagesSerde(blockEncodingSerde, Optional.ofNullable(pageCompressor), Optional.ofNullable(pageDecompressor), Optional.empty()); + } + private static DataSink createPageDataSink(FileSystem fileSystem, Path path) throws IOException { diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/ConfigurationUtils.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/ConfigurationUtils.java index d142f807b4f76..12616da54d687 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/ConfigurationUtils.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/ConfigurationUtils.java @@ -31,6 +31,7 @@ public final class ConfigurationUtils { + public static final String PAGE_FILE_COMPRESSION = "pagefile.output.compression"; private static final Configuration INITIAL_CONFIGURATION; static { @@ -116,5 +117,7 @@ private static void setCompressionProperties(Configuration config, HiveCompressi compression.getParquetCompressionCodec().ifPresent(codec -> config.set(ParquetOutputFormat.COMPRESSION, codec.name())); // For SequenceFile config.set(FileOutputFormat.COMPRESS_TYPE, BLOCK.toString()); + // For PageFile + config.set(PAGE_FILE_COMPRESSION, compression.name()); } } From f2cef22ed2c03d5dbe3bb30c77e87a6d23fa0d57 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Wed, 29 Apr 2020 14:33:30 -0400 Subject: [PATCH 056/129] Add LZ4 compression in HiveCompressionCodec Lz4 compression is only used for PageFile format. --- .../java/com/facebook/presto/hive/HiveCompressionCodec.java | 2 ++ .../presto/hive/pagefile/PageFileWriterFactory.java | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCompressionCodec.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCompressionCodec.java index 5363f6e2a6a72..c8eb6ebaff88c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCompressionCodec.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCompressionCodec.java @@ -24,6 +24,7 @@ import static com.facebook.presto.hive.HiveStorageFormat.DWRF; import static com.facebook.presto.hive.HiveStorageFormat.ORC; +import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static java.util.Objects.requireNonNull; public enum HiveCompressionCodec @@ -31,6 +32,7 @@ public enum HiveCompressionCodec NONE(null, CompressionKind.NONE, CompressionCodecName.UNCOMPRESSED, f -> true), SNAPPY(SnappyCodec.class, CompressionKind.SNAPPY, CompressionCodecName.SNAPPY, f -> true), GZIP(GzipCodec.class, CompressionKind.ZLIB, CompressionCodecName.GZIP, f -> true), + LZ4(null, CompressionKind.NONE, null, f -> f == PAGEFILE), ZSTD(null, CompressionKind.ZSTD, null, f -> f == ORC || f == DWRF); private final Optional> codec; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java index 5c3d7bee3dba7..bc24aaa8394c0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java @@ -27,6 +27,8 @@ import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; import com.google.common.collect.ImmutableList; +import io.airlift.compress.lz4.Lz4Compressor; +import io.airlift.compress.lz4.Lz4Decompressor; import io.airlift.compress.snappy.SnappyCompressor; import io.airlift.compress.snappy.SnappyDecompressor; import org.apache.hadoop.fs.FileSystem; @@ -132,6 +134,10 @@ public static PagesSerde createPagesSerdeForPageFile(BlockEncodingSerde blockEnc pageCompressor = new AirliftCompressorAdapter(new SnappyCompressor()); pageDecompressor = new AirliftDecompressorAdapter(new SnappyDecompressor()); break; + case LZ4: + pageCompressor = new AirliftCompressorAdapter(new Lz4Compressor()); + pageDecompressor = new AirliftDecompressorAdapter(new Lz4Decompressor()); + break; default: throw new PrestoException( GENERIC_INTERNAL_ERROR, From f7cfca440852e00deebd16349a18d53993adebb5 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Fri, 1 May 2020 15:42:16 -0400 Subject: [PATCH 057/129] Implement Decompressor using zlib To support GZIP HiveCompressionCodec for PageFile. --- .../hive/pagefile/PageFileWriterFactory.java | 6 ++ .../facebook/presto/orc/OrcOutputBuffer.java | 1 + .../orc/{ => zlib}/DeflateCompressor.java | 13 +++- .../presto/orc/zlib/InflateDecompressor.java | 61 +++++++++++++++++++ 4 files changed, 78 insertions(+), 3 deletions(-) rename presto-orc/src/main/java/com/facebook/presto/orc/{ => zlib}/DeflateCompressor.java (75%) create mode 100644 presto-orc/src/main/java/com/facebook/presto/orc/zlib/InflateDecompressor.java diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java index bc24aaa8394c0..168250dda4695 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java @@ -20,6 +20,8 @@ import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OutputStreamDataSink; +import com.facebook.presto.orc.zlib.DeflateCompressor; +import com.facebook.presto.orc.zlib.InflateDecompressor; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; @@ -138,6 +140,10 @@ public static PagesSerde createPagesSerdeForPageFile(BlockEncodingSerde blockEnc pageCompressor = new AirliftCompressorAdapter(new Lz4Compressor()); pageDecompressor = new AirliftDecompressorAdapter(new Lz4Decompressor()); break; + case GZIP: + pageCompressor = new AirliftCompressorAdapter(new DeflateCompressor()); + pageDecompressor = new AirliftDecompressorAdapter(new InflateDecompressor()); + break; default: throw new PrestoException( GENERIC_INTERNAL_ERROR, diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcOutputBuffer.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcOutputBuffer.java index 7df6adf20a74a..268a6da907af7 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcOutputBuffer.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcOutputBuffer.java @@ -15,6 +15,7 @@ import com.facebook.presto.orc.checkpoint.InputStreamCheckpoint; import com.facebook.presto.orc.metadata.CompressionKind; +import com.facebook.presto.orc.zlib.DeflateCompressor; import com.facebook.presto.orc.zstd.ZstdJniCompressor; import com.google.common.annotations.VisibleForTesting; import io.airlift.compress.Compressor; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/DeflateCompressor.java b/presto-orc/src/main/java/com/facebook/presto/orc/zlib/DeflateCompressor.java similarity index 75% rename from presto-orc/src/main/java/com/facebook/presto/orc/DeflateCompressor.java rename to presto-orc/src/main/java/com/facebook/presto/orc/zlib/DeflateCompressor.java index 5642e55c095c7..dab363bd64482 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/DeflateCompressor.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/zlib/DeflateCompressor.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.orc; +package com.facebook.presto.orc.zlib; import io.airlift.compress.Compressor; @@ -48,7 +48,7 @@ public int compress(byte[] input, int inputOffset, int inputLength, byte[] outpu int compressedDataLength = deflater.deflate(output, outputOffset, maxOutputLength, FULL_FLUSH); if (!deflater.finished()) { - throw new IllegalStateException("maxCompressedLength formula is incorrect, because deflate produced more data"); + throw new IllegalArgumentException("maxCompressedLength formula is incorrect, because deflate produced more data"); } return compressedDataLength; } @@ -60,6 +60,13 @@ public int compress(byte[] input, int inputOffset, int inputLength, byte[] outpu @Override public void compress(ByteBuffer input, ByteBuffer output) { - throw new UnsupportedOperationException("Compression of byte buffer not supported for deflate"); + if (input.isDirect() || output.isDirect() || !input.hasArray() || !output.hasArray()) { + throw new IllegalArgumentException("Non-direct byte buffer backed by byte array required"); + } + int inputOffset = input.arrayOffset() + input.position(); + int outputOffset = output.arrayOffset() + output.position(); + + int written = compress(input.array(), inputOffset, input.remaining(), output.array(), outputOffset, output.remaining()); + output.position(output.position() + written); } } diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/zlib/InflateDecompressor.java b/presto-orc/src/main/java/com/facebook/presto/orc/zlib/InflateDecompressor.java new file mode 100644 index 0000000000000..9e6a80bf488f9 --- /dev/null +++ b/presto-orc/src/main/java/com/facebook/presto/orc/zlib/InflateDecompressor.java @@ -0,0 +1,61 @@ +/* + * 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 com.facebook.presto.orc.zlib; + +import io.airlift.compress.Decompressor; +import io.airlift.compress.MalformedInputException; + +import java.nio.ByteBuffer; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; + +public class InflateDecompressor + implements Decompressor +{ + @Override + public int decompress(byte[] input, int inputOffset, int inputLength, byte[] output, int outputOffset, int maxOutputLength) + throws MalformedInputException + { + Inflater inflater = new Inflater(true); + inflater.setInput(input, inputOffset, inputLength); + int uncompressedLength = 0; + try { + uncompressedLength = inflater.inflate(output, outputOffset, maxOutputLength); + if (!inflater.finished()) { + throw new IllegalArgumentException("maxOutputLength is incorrect, there is more data to be decompressed"); + } + } + catch (DataFormatException e) { + throw new MalformedInputException(inputOffset, e.getMessage()); + } + finally { + inflater.end(); + } + return uncompressedLength; + } + + @Override + public void decompress(ByteBuffer input, ByteBuffer output) + throws MalformedInputException + { + if (input.isDirect() || output.isDirect() || !input.hasArray() || !output.hasArray()) { + throw new IllegalArgumentException("Non-direct byte buffer backed by byte array required"); + } + int inputOffset = input.arrayOffset() + input.position(); + int outputOffset = output.arrayOffset() + output.position(); + + int written = decompress(input.array(), inputOffset, input.remaining(), output.array(), outputOffset, output.remaining()); + output.position(output.position() + written); + } +} From f297b39d95a67c7501026ed3eb9ad9ce66bdedc4 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Wed, 29 Apr 2020 14:06:53 -0400 Subject: [PATCH 058/129] Add compression information in PageFile footer --- .../hive/pagefile/PageFileFooterOutput.java | 30 +++++++++++++++---- .../presto/hive/pagefile/PageFileWriter.java | 2 +- .../presto/hive/pagefile/PageWriter.java | 10 +++++-- .../presto/hive/benchmark/FileFormat.java | 1 + 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java index 568cb9735cdb2..493207f134b88 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterOutput.java @@ -13,14 +13,17 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.orc.stream.DataOutput; import com.google.common.collect.ImmutableList; +import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import java.util.List; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; +import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; @@ -28,30 +31,47 @@ public class PageFileFooterOutput implements DataOutput { public static final int FOOTER_LENGTH_IN_BYTES = SIZE_OF_INT; + private final List stripeOffsets; + private final Slice compressionSlice; - public PageFileFooterOutput(List stripeOffsets) + public PageFileFooterOutput(List stripeOffsets, HiveCompressionCodec compressionCodec) { this.stripeOffsets = ImmutableList.copyOf(requireNonNull(stripeOffsets, "stripeOffsets is null")); + compressionSlice = utf8Slice(requireNonNull(compressionCodec, "compressionCodec is null").name()); } @Override public long size() { - return SIZE_OF_LONG * stripeOffsets.size() + FOOTER_LENGTH_IN_BYTES; + long size = FOOTER_LENGTH_IN_BYTES; + if (!stripeOffsets.isEmpty()) { + size += SIZE_OF_INT + compressionSlice.length() + + SIZE_OF_INT + SIZE_OF_LONG * stripeOffsets.size(); + } + return size; } @Override public void writeData(SliceOutput sliceOutput) { - for (long offset : stripeOffsets) { - sliceOutput.writeLong(offset); + if (!stripeOffsets.isEmpty()) { + // write compression information + sliceOutput.writeInt(compressionSlice.length()); + sliceOutput.writeBytes(compressionSlice); + + // write stripe count and offsets + sliceOutput.writeInt(stripeOffsets.size()); + for (long offset : stripeOffsets) { + sliceOutput.writeLong(offset); + } } + // write footer length sliceOutput.writeInt(toIntExact(size())); } public static PageFileFooterOutput createEmptyPageFileFooterOutput() { - return new PageFileFooterOutput(ImmutableList.of()); + return new PageFileFooterOutput(ImmutableList.of(), HiveCompressionCodec.NONE); } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java index 9c6d23fe96a8e..2f7baf0bb4696 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java @@ -46,7 +46,7 @@ public PageFileWriter( DataSize pageFileStripeMaxSize, Callable rollbackAction) { - pageWriter = new PageWriter(dataSink, pageFileStripeMaxSize); + pageWriter = new PageWriter(dataSink, compression, pageFileStripeMaxSize); this.pagesSerde = requireNonNull(pagesSerde, "pagesSerde is null"); this.rollbackAction = requireNonNull(rollbackAction, "rollbackAction is null"); } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java index 5e7723966ab0e..b5eaa09c5d995 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.stream.DataOutput; import com.facebook.presto.spi.page.SerializedPage; @@ -33,6 +34,7 @@ public class PageWriter private static final int INSTANCE_SIZE = ClassLayout.parseClass(PageWriter.class).instanceSize(); private final DataSink dataSink; + private final HiveCompressionCodec compressionCodec; private long bufferedBytes; private long retainedBytes; private long maxBufferedBytes; @@ -41,9 +43,13 @@ public class PageWriter private List stripeOffsets; private long stripeOffset; - public PageWriter(DataSink dataSink, DataSize pageFileStripeMaxSize) + public PageWriter( + DataSink dataSink, + HiveCompressionCodec compressionCodec, + DataSize pageFileStripeMaxSize) { this.dataSink = requireNonNull(dataSink, "pageDataSink is null"); + this.compressionCodec = requireNonNull(compressionCodec, "compressionCodec is null"); this.maxBufferedBytes = requireNonNull(pageFileStripeMaxSize, "pageFileStripeMaxSize is null").toBytes(); bufferedPages = new ArrayList<>(); stripeOffsets = new ArrayList<>(); @@ -81,7 +87,7 @@ public void close() if (!bufferedPages.isEmpty()) { flushStripe(); } - dataSink.write(ImmutableList.of(new PageFileFooterOutput(stripeOffsets))); + dataSink.write(ImmutableList.of(new PageFileFooterOutput(stripeOffsets, compressionCodec))); dataSink.close(); } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java index 1f4d30468a587..17dbfdfcb6f71 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java @@ -673,6 +673,7 @@ public PrestoPageFormatWriter(File targetFile) { writer = new PageWriter( new OutputStreamDataSink(new FileOutputStream(targetFile)), + HiveCompressionCodec.NONE, new DataSize(10, DataSize.Unit.MEGABYTE)); } From cd2a34bd2320872814698ed2e228c6ea1c0edf37 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Wed, 29 Apr 2020 14:15:13 -0400 Subject: [PATCH 059/129] Support reading compressed PageFile format --- .../hive/pagefile/PageFileFooterReader.java | 50 ++++++++++++++++--- .../hive/pagefile/PageFilePageSource.java | 9 ++-- .../pagefile/PageFilePageSourceFactory.java | 27 ++++++---- .../hive/TestHiveIntegrationSmokeTest.java | 39 +++++++++++++++ .../presto/hive/TestHivePageSink.java | 5 -- 5 files changed, 106 insertions(+), 24 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java index bee6db3cf29b7..563427824a749 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileFooterReader.java @@ -13,26 +13,35 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.hive.HiveCompressionCodec; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; -import io.airlift.slice.SliceInput; +import io.airlift.slice.FixedLengthSliceInput; import io.airlift.slice.Slices; import org.apache.hadoop.fs.FSDataInputStream; import java.io.IOException; import java.util.List; +import java.util.Optional; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; +import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static com.facebook.presto.hive.pagefile.PageFileFooterOutput.FOOTER_LENGTH_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; +import static io.airlift.slice.SizeOf.SIZE_OF_INT; +import static io.airlift.slice.SizeOf.SIZE_OF_LONG; import static java.lang.Math.min; import static java.lang.Math.toIntExact; +import static java.lang.String.format; import static java.util.Objects.requireNonNull; public class PageFileFooterReader { private static final int ESTIMATED_FOOTER_SIZE = 1024; - private List stripeOffsets; - private long footerOffset; + private final List stripeOffsets; + private final long footerOffset; + private final Optional compressionCodec; public PageFileFooterReader( FSDataInputStream inputStream, @@ -48,8 +57,9 @@ public PageFileFooterReader( int footerSize = Slices.wrappedBuffer(buffer, buffer.length - FOOTER_LENGTH_IN_BYTES, FOOTER_LENGTH_IN_BYTES).getInt(0); footerOffset = fileSize - footerSize; + HiveCompressionCodec compression; if (footerOffset < 0) { - throw new IOException("Malformed PageFile format, incorrect footer length."); + throw new PrestoException(HIVE_BAD_DATA, "Malformed PageFile format, incorrect footer length."); } else if (footerOffset > 0) { if (footerSize > buffer.length) { @@ -57,15 +67,38 @@ else if (footerOffset > 0) { inputStream.readFully(footerOffset, buffer); } - SliceInput sliceInput = Slices.wrappedBuffer(buffer, buffer.length - footerSize, footerSize - FOOTER_LENGTH_IN_BYTES).getInput(); + FixedLengthSliceInput sliceInput = Slices.wrappedBuffer(buffer, buffer.length - footerSize, footerSize - FOOTER_LENGTH_IN_BYTES).getInput(); + long remainingSize = sliceInput.length(); + // read compression + int compressionStringSize = sliceInput.readInt(); + remainingSize -= SIZE_OF_INT; + String compressionName = sliceInput.readSlice(compressionStringSize).toStringUtf8(); + remainingSize -= compressionStringSize; - while (sliceInput.isReadable()) { + try { + compression = HiveCompressionCodec.valueOf(compressionName); + } + catch (Exception e) { + throw new PrestoException( + HIVE_BAD_DATA, + format("%s is invalid compression method in the footer of %s", compressionName, PAGEFILE.getInputFormat())); + } + + // read stripeOffsets + int stripeCount = sliceInput.readInt(); + remainingSize -= SIZE_OF_INT; + if (remainingSize != SIZE_OF_LONG * stripeCount) { + throw new PrestoException(HIVE_BAD_DATA, "Malformed PageFile format, incorrect stripe count."); + } + for (int i = 0; i < stripeCount; ++i) { stripeOffsetsBuilder.add(sliceInput.readLong()); } } else { // empty page file without stripe + compression = null; } + compressionCodec = Optional.ofNullable(compression); stripeOffsets = stripeOffsetsBuilder.build(); } @@ -78,4 +111,9 @@ public long getFooterOffset() { return footerOffset; } + + public Optional getCompression() + { + return compressionCodec; + } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java index 66ea4a376e452..d15b312090bf3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java @@ -18,13 +18,14 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.page.PagesSerde; +import com.facebook.presto.spi.block.BlockEncodingSerde; import org.apache.hadoop.fs.FSDataInputStream; import java.io.IOException; import java.util.Iterator; import java.util.List; +import static com.facebook.presto.hive.pagefile.PageFileWriterFactory.createPagesSerdeForPageFile; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -47,7 +48,7 @@ public PageFilePageSource( long start, long splitLength, long fileSize, - PagesSerde pagesSerde, + BlockEncodingSerde blockEncodingSerde, List columns) throws IOException { @@ -64,7 +65,9 @@ public PageFilePageSource( readStartAndLength.getOffset(), readStartAndLength.getLength(), inputStream, - pagesSerde); + createPagesSerdeForPageFile( + blockEncodingSerde, + pageFileFooterReader.getCompression())); int size = requireNonNull(columns, "columns is null").size(); this.hiveColumnIndexes = new int[size]; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java index 89fbb828add21..cbf5f85f604f6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java @@ -22,7 +22,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; @@ -32,12 +31,14 @@ import javax.inject.Inject; import java.io.FileNotFoundException; +import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CANNOT_OPEN_SPLIT; import static com.google.common.base.Strings.nullToEmpty; +import static com.google.common.base.Throwables.propagateIfPossible; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -45,7 +46,7 @@ public class PageFilePageSourceFactory implements HiveBatchPageSourceFactory { private final HdfsEnvironment hdfsEnvironment; - private final PagesSerde pagesSerde; + private final BlockEncodingSerde blockEncodingSerde; @Inject public PageFilePageSourceFactory( @@ -53,11 +54,7 @@ public PageFilePageSourceFactory( BlockEncodingSerde blockEncodingSerde) { this.hdfsEnvironment = requireNonNull(hdfsEnvironment, "hdfsEnvironment is null"); - pagesSerde = new PagesSerde( - requireNonNull(blockEncodingSerde, "blockEncodingSerde is null"), - Optional.empty(), - Optional.empty(), - Optional.empty()); + this.blockEncodingSerde = requireNonNull(blockEncodingSerde, "blockEncodingSerde is null"); } @Override @@ -80,10 +77,8 @@ public Optional createPageSource( } FSDataInputStream inputStream; - PageFilePageSource pageFilePageSource; try { inputStream = hdfsEnvironment.getFileSystem(session.getUser(), path, configuration).openFile(path, hiveFileContext); - pageFilePageSource = new PageFilePageSource(inputStream, start, length, fileSize, pagesSerde, columns); } catch (Exception e) { if (nullToEmpty(e.getMessage()).trim().equals("Filesystem closed") || @@ -93,7 +88,19 @@ public Optional createPageSource( throw new PrestoException(HIVE_CANNOT_OPEN_SPLIT, splitError(e, path, start, length), e); } - return Optional.of(pageFilePageSource); + try { + PageFilePageSource pageFilePageSource = new PageFilePageSource(inputStream, start, length, fileSize, blockEncodingSerde, columns); + return Optional.of(pageFilePageSource); + } + catch (Throwable e) { + try { + inputStream.close(); + } + catch (IOException ignored) { + } + propagateIfPossible(e, PrestoException.class); + throw new PrestoException(HIVE_CANNOT_OPEN_SPLIT, splitError(e, path, start, length), e); + } } private static String splitError(Throwable t, Path path, long start, long length) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index 6e935f013c27a..2f65304d86f44 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -93,6 +93,7 @@ import static com.facebook.presto.hive.HiveSessionProperties.SORTED_WRITE_TEMP_PATH_SUBDIRECTORY_COUNT; import static com.facebook.presto.hive.HiveSessionProperties.SORTED_WRITE_TO_TEMP_PATH_ENABLED; import static com.facebook.presto.hive.HiveSessionProperties.getInsertExistingPartitionsBehavior; +import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static com.facebook.presto.hive.HiveTableProperties.BUCKETED_BY_PROPERTY; import static com.facebook.presto.hive.HiveTableProperties.BUCKET_COUNT_PROPERTY; import static com.facebook.presto.hive.HiveTableProperties.PARTITIONED_BY_PROPERTY; @@ -4780,6 +4781,44 @@ public void testPageFileFormatSmallSplitSize() assertUpdate("DROP TABLE test_pagefile_small_split"); } + @Test + public void testPageFileCompression() + { + for (HiveCompressionCodec compression : HiveCompressionCodec.values()) { + if (!compression.isSupportedStorageFormat(PAGEFILE)) { + continue; + } + testPageFileCompression(compression.name()); + } + } + + private void testPageFileCompression(String compression) + { + Session testSession = Session.builder(getQueryRunner().getDefaultSession()) + .setCatalogSessionProperty(catalog, "compression_codec", compression) + .setCatalogSessionProperty(catalog, "pagefile_writer_max_stripe_size", "100B") + .setCatalogSessionProperty(catalog, "max_split_size", "1kB") + .setCatalogSessionProperty(catalog, "max_initial_split_size", "1kB") + .build(); + + assertUpdate( + testSession, + "CREATE TABLE test_pagefile_compression\n" + + "WITH (\n" + + "format = 'PAGEFILE'\n" + + ") AS\n" + + "SELECT\n" + + "*\n" + + "FROM tpch.orders", + "SELECT count(*) FROM orders"); + + assertQuery(testSession, "SELECT count(*) FROM test_pagefile_compression", "SELECT count(*) FROM orders"); + + assertQuery(testSession, "SELECT sum(custkey) FROM test_pagefile_compression", "SELECT sum(custkey) FROM orders"); + + assertUpdate("DROP TABLE test_pagefile_compression"); + } + private static Consumer assertTableWriterMergeNodeIsPresent() { return plan -> assertTrue(searchFrom(plan.getRoot()) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java index 555635ed19e7c..aca0acf71b3b3 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java @@ -63,7 +63,6 @@ import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveCompressionCodec.NONE; import static com.facebook.presto.hive.HiveQueryRunner.HIVE_CATALOG; -import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static com.facebook.presto.hive.HiveTestUtils.PAGE_SORTER; import static com.facebook.presto.hive.HiveTestUtils.ROW_EXPRESSION_SERVICE; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; @@ -123,10 +122,6 @@ public void testAllFormats() if (codec == NONE || !codec.isSupportedStorageFormat(format)) { continue; } - // No compression support needed for PAGEFILE - if (format == PAGEFILE) { - continue; - } config.setCompressionCodec(codec); long length = writeTestFile(config, metastoreClientConfig, metastore, makeFileName(tempDir, config)); assertTrue(uncompressedLength > length, format("%s with %s compressed to %s which is not less than %s", format, codec, length, uncompressedLength)); From 516aba5b59ad138c72666ddad42d988a379ea5d6 Mon Sep 17 00:00:00 2001 From: Vic Zhang Date: Wed, 29 Apr 2020 16:30:51 -0400 Subject: [PATCH 060/129] Add PageFile compression in HiveFileFormatBenchmark --- .../presto/hive/benchmark/FileFormat.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java index 17dbfdfcb6f71..c9c12f80230fb 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java @@ -75,11 +75,14 @@ import java.util.Properties; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; +import static com.facebook.presto.hive.HiveCompressionCodec.NONE; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; +import static com.facebook.presto.hive.HiveStorageFormat.PAGEFILE; import static com.facebook.presto.hive.HiveTestUtils.HIVE_CLIENT_CONFIG; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; import static com.facebook.presto.hive.HiveType.toHiveType; import static com.facebook.presto.hive.metastore.StorageFormat.fromHiveStorageFormat; +import static com.facebook.presto.hive.pagefile.PageFileWriterFactory.createPagesSerdeForPageFile; import static com.facebook.presto.hive.util.ConfigurationUtils.configureCompression; import static com.facebook.presto.orc.OrcEncoding.DWRF; import static com.facebook.presto.orc.OrcEncoding.ORC; @@ -214,7 +217,7 @@ public ConnectorPageSource createFileFormatReader(ConnectorSession session, Hdfs HiveBatchPageSourceFactory pageSourceFactory = new PageFilePageSourceFactory( hdfsEnvironment, new BlockEncodingManager(TYPE_MANAGER)); - return createPageSource(pageSourceFactory, session, targetFile, columnNames, columnTypes, HiveStorageFormat.PAGEFILE); + return createPageSource(pageSourceFactory, session, targetFile, columnNames, columnTypes, PAGEFILE); } @Override @@ -226,7 +229,10 @@ public FormatWriter createFileFormatWriter( HiveCompressionCodec compressionCodec) throws IOException { - return new PrestoPageFormatWriter(targetFile); + if (!compressionCodec.isSupportedStorageFormat(PAGEFILE)) { + compressionCodec = NONE; + } + return new PrestoPageFormatWriter(targetFile, compressionCodec); } @Override @@ -662,19 +668,16 @@ private static class PrestoPageFormatWriter implements FormatWriter { private final PageWriter writer; - private final PagesSerde pagesSerde = new PagesSerde( - new BlockEncodingManager(TYPE_MANAGER), - Optional.empty(), - Optional.empty(), - Optional.empty()); + private final PagesSerde pagesSerde; - public PrestoPageFormatWriter(File targetFile) + public PrestoPageFormatWriter(File targetFile, HiveCompressionCodec compressionCodec) throws IOException { writer = new PageWriter( new OutputStreamDataSink(new FileOutputStream(targetFile)), - HiveCompressionCodec.NONE, + compressionCodec, new DataSize(10, DataSize.Unit.MEGABYTE)); + pagesSerde = createPagesSerdeForPageFile(new BlockEncodingManager(TYPE_MANAGER), Optional.of(compressionCodec)); } @Override From 5bd40c56a06b8bc48d7d0a361c506f456dc68e86 Mon Sep 17 00:00:00 2001 From: Bhavani Hari Date: Sat, 2 May 2020 01:13:54 -0700 Subject: [PATCH 061/129] Fix integer overflow when creating a BigIntValues Filter --- .../com/facebook/presto/orc/TupleDomainFilterUtils.java | 6 +++++- .../com/facebook/presto/orc/TestTupleDomainFilterUtils.java | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java index a8534b38856c8..6ed199368f416 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java @@ -35,6 +35,7 @@ import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; +import java.math.BigInteger; import java.util.List; import java.util.Objects; @@ -347,7 +348,10 @@ public static TupleDomainFilter toBigintValues(long[] values, boolean nullAllowe // slots in a hash table), e.g. up to 192 bits per value. // Filter based on a bitmap uses (max - min) / num-values bits per value. // Choose the filter that uses less bits per value. - if ((max - min + 1) > Integer.MAX_VALUE || ((max - min + 1) / values.length) > 192) { + BigInteger range = BigInteger.valueOf(max) + .subtract(BigInteger.valueOf(min)) + .add(BigInteger.valueOf(1)); + if (range.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) == 1 || (range.intValueExact() / values.length) > 192) { return BigintValuesUsingHashTable.of(min, max, values, nullAllowed); } diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java index 6fb6a83e61a7f..0cb02f0155b02 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java @@ -230,6 +230,8 @@ public void testBigint() assertEquals(toFilter(not(greaterThanOrEqual(C_BIGINT, bigintLiteral(2L)))), BigintRange.of(Long.MIN_VALUE, 1L, false)); assertEquals(toFilter(in(C_BIGINT, ImmutableList.of(1, 10, 100_000))), BigintValuesUsingHashTable.of(1, 100_000, new long[] {1, 10, 100_000}, false)); + assertEquals(toFilter(in(C_BIGINT, ImmutableList.of(Long.MIN_VALUE, 10, 100_000))), BigintValuesUsingHashTable.of(Long.MIN_VALUE, 100_000, new long[] {Long.MIN_VALUE, 10, 100_000}, false)); + assertEquals(toFilter(in(C_BIGINT, ImmutableList.of(Long.MIN_VALUE, Long.MAX_VALUE, 0))), BigintValuesUsingHashTable.of(Long.MIN_VALUE, Long.MAX_VALUE, new long[] {Long.MIN_VALUE, 0, Long.MAX_VALUE}, false)); assertEquals(toFilter(in(C_BIGINT, ImmutableList.of(1, 10, 100))), BigintValuesUsingBitmask.of(1, 100, new long[] {1, 10, 100}, false)); assertEquals(toFilter(not(in(C_BIGINT, ImmutableList.of(1, 10, 100)))), BigintMultiRange.of(ImmutableList.of( BigintRange.of(Long.MIN_VALUE, 0L, false), From 46d18342378d93283f592127def1d39ee27e2c31 Mon Sep 17 00:00:00 2001 From: Masha Basmanova Date: Tue, 5 May 2020 09:54:32 -0400 Subject: [PATCH 062/129] Disable memory allocation tracking by default --- .../facebook/presto/execution/TaskManagerConfig.java | 4 ++-- .../presto/execution/TestTaskManagerConfig.java | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/execution/TaskManagerConfig.java b/presto-main/src/main/java/com/facebook/presto/execution/TaskManagerConfig.java index 933995c715e8c..71893cf02db5d 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/TaskManagerConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/TaskManagerConfig.java @@ -44,8 +44,8 @@ public class TaskManagerConfig private boolean perOperatorCpuTimerEnabled = true; private boolean taskCpuTimerEnabled = true; private boolean statisticsCpuTimerEnabled = true; - private boolean perOperatorAllocationTrackingEnabled = true; - private boolean taskAllocationTrackingEnabled = true; + private boolean perOperatorAllocationTrackingEnabled; + private boolean taskAllocationTrackingEnabled; private DataSize maxPartialAggregationMemoryUsage = new DataSize(16, Unit.MEGABYTE); private DataSize maxLocalExchangeBufferSize = new DataSize(32, Unit.MEGABYTE); private DataSize maxIndexMemoryUsage = new DataSize(64, Unit.MEGABYTE); diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestTaskManagerConfig.java b/presto-main/src/test/java/com/facebook/presto/execution/TestTaskManagerConfig.java index ee7cfec47f6fb..db250f2e32a8d 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestTaskManagerConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestTaskManagerConfig.java @@ -42,8 +42,8 @@ public void testDefaults() .setInfoRefreshMaxWait(new Duration(0, TimeUnit.SECONDS)) .setPerOperatorCpuTimerEnabled(true) .setTaskCpuTimerEnabled(true) - .setPerOperatorAllocationTrackingEnabled(true) - .setTaskAllocationTrackingEnabled(true) + .setPerOperatorAllocationTrackingEnabled(false) + .setTaskAllocationTrackingEnabled(false) .setMaxWorkerThreads(Runtime.getRuntime().availableProcessors() * 2) .setMinDrivers(Runtime.getRuntime().availableProcessors() * 2 * 2) .setMinDriversPerTask(3) @@ -83,8 +83,8 @@ public void testExplicitPropertyMappings() .put("experimental.task.info-update-refresh-max-wait", "3s") .put("task.per-operator-cpu-timer-enabled", "false") .put("task.cpu-timer-enabled", "false") - .put("task.per-operator-allocation-tracking-enabled", "false") - .put("task.allocation-tracking-enabled", "false") + .put("task.per-operator-allocation-tracking-enabled", "true") + .put("task.allocation-tracking-enabled", "true") .put("task.max-index-memory", "512MB") .put("task.share-index-loading", "true") .put("task.max-partial-aggregation-memory", "32MB") @@ -121,8 +121,8 @@ public void testExplicitPropertyMappings() .setInfoRefreshMaxWait(new Duration(3, TimeUnit.SECONDS)) .setPerOperatorCpuTimerEnabled(false) .setTaskCpuTimerEnabled(false) - .setPerOperatorAllocationTrackingEnabled(false) - .setTaskAllocationTrackingEnabled(false) + .setPerOperatorAllocationTrackingEnabled(true) + .setTaskAllocationTrackingEnabled(true) .setMaxIndexMemoryUsage(new DataSize(512, Unit.MEGABYTE)) .setShareIndexLoading(true) .setMaxPartialAggregationMemoryUsage(new DataSize(32, Unit.MEGABYTE)) From 8886f79944f347ed58108f01ed402d2e31f89cd0 Mon Sep 17 00:00:00 2001 From: Shixuan Fan Date: Mon, 4 May 2020 16:06:15 -0700 Subject: [PATCH 063/129] Remove unused field in HiveMetadata --- .../java/com/facebook/presto/hive/HiveMetadata.java | 12 ------------ .../facebook/presto/hive/HiveMetadataFactory.java | 7 ------- .../facebook/presto/hive/AbstractTestHiveClient.java | 1 - .../presto/hive/AbstractTestHiveFileSystem.java | 2 -- 4 files changed, 22 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 1800fcc61c866..9c0b49866815c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -64,7 +64,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorPartitioningMetadata; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.predicate.Domain; @@ -275,14 +274,6 @@ public class HiveMetadata private static final String ORC_BLOOM_FILTER_FPP_KEY = "orc.bloom.filter.fpp"; private static final String PRESTO_TEMPORARY_TABLE_NAME_PREFIX = "__presto_temporary_table_"; - private static final ConnectorTableLayout EMPTY_TABLE_LAYOUT = new ConnectorTableLayout( - new ConnectorTableLayoutHandle() {}, - Optional.empty(), - TupleDomain.none(), - Optional.empty(), - Optional.empty(), - Optional.empty(), - emptyList()); // Comma is not a reserved keyword with or without quote // See https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Keywords,Non-reservedKeywordsandReservedKeywords @@ -301,7 +292,6 @@ public class HiveMetadata private final TypeManager typeManager; private final LocationService locationService; private final StandardFunctionResolution functionResolution; - private final FunctionMetadataManager functionMetadataManager; private final RowExpressionService rowExpressionService; private final FilterStatsCalculatorService filterStatsCalculatorService; private final TableParameterCodec tableParameterCodec; @@ -328,7 +318,6 @@ public HiveMetadata( TypeManager typeManager, LocationService locationService, StandardFunctionResolution functionResolution, - FunctionMetadataManager functionMetadataManager, RowExpressionService rowExpressionService, FilterStatsCalculatorService filterStatsCalculatorService, TableParameterCodec tableParameterCodec, @@ -349,7 +338,6 @@ public HiveMetadata( this.typeManager = requireNonNull(typeManager, "typeManager is null"); this.locationService = requireNonNull(locationService, "locationService is null"); this.functionResolution = requireNonNull(functionResolution, "functionResolution is null"); - this.functionMetadataManager = requireNonNull(functionMetadataManager, "functionMetadataManager is null"); this.rowExpressionService = requireNonNull(rowExpressionService, "rowExpressionService is null"); this.filterStatsCalculatorService = requireNonNull(filterStatsCalculatorService, "filterStatsCalculatorService is null"); this.tableParameterCodec = requireNonNull(tableParameterCodec, "tableParameterCodec is null"); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java index 5b209cac4ceb9..bb64bd4b43d97 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java @@ -19,7 +19,6 @@ import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; import com.facebook.presto.hive.metastore.SemiTransactionalHiveMetastore; import com.facebook.presto.hive.statistics.MetastoreHiveStatisticsProvider; -import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.relation.RowExpressionService; @@ -52,7 +51,6 @@ public class HiveMetadataFactory private final TypeManager typeManager; private final LocationService locationService; private final StandardFunctionResolution functionResolution; - private final FunctionMetadataManager functionMetadataManager; private final RowExpressionService rowExpressionService; private final FilterStatsCalculatorService filterStatsCalculatorService; private final TableParameterCodec tableParameterCodec; @@ -76,7 +74,6 @@ public HiveMetadataFactory( TypeManager typeManager, LocationService locationService, StandardFunctionResolution functionResolution, - FunctionMetadataManager functionMetadataManager, RowExpressionService rowExpressionService, FilterStatsCalculatorService filterStatsCalculatorService, TableParameterCodec tableParameterCodec, @@ -102,7 +99,6 @@ public HiveMetadataFactory( typeManager, locationService, functionResolution, - functionMetadataManager, rowExpressionService, filterStatsCalculatorService, tableParameterCodec, @@ -130,7 +126,6 @@ public HiveMetadataFactory( TypeManager typeManager, LocationService locationService, StandardFunctionResolution functionResolution, - FunctionMetadataManager functionMetadataManager, RowExpressionService rowExpressionService, FilterStatsCalculatorService filterStatsCalculatorService, TableParameterCodec tableParameterCodec, @@ -157,7 +152,6 @@ public HiveMetadataFactory( this.typeManager = requireNonNull(typeManager, "typeManager is null"); this.locationService = requireNonNull(locationService, "locationService is null"); this.functionResolution = requireNonNull(functionResolution, "functionResolution is null"); - this.functionMetadataManager = requireNonNull(functionMetadataManager, "functionMetadataManager is null"); this.rowExpressionService = requireNonNull(rowExpressionService, "rowExpressionService is null"); this.filterStatsCalculatorService = requireNonNull(filterStatsCalculatorService, "filterStatsCalculatorService is null"); this.tableParameterCodec = requireNonNull(tableParameterCodec, "tableParameterCodec is null"); @@ -199,7 +193,6 @@ public HiveMetadata get() typeManager, locationService, functionResolution, - functionMetadataManager, rowExpressionService, filterStatsCalculatorService, tableParameterCodec, diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index 7ce97f6c28adc..2630bbc8175a7 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -925,7 +925,6 @@ protected final void setup(String databaseName, HiveClientConfig hiveClientConfi TYPE_MANAGER, locationService, FUNCTION_RESOLUTION, - METADATA.getFunctionManager(), ROW_EXPRESSION_SERVICE, FILTER_STATS_CALCULATOR_SERVICE, new TableParameterCodec(), diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java index 7e6e81a50449b..ccfbf8ceed18d 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java @@ -90,7 +90,6 @@ import static com.facebook.presto.hive.AbstractTestHiveClient.getAllSplits; import static com.facebook.presto.hive.HiveTestUtils.FILTER_STATS_CALCULATOR_SERVICE; import static com.facebook.presto.hive.HiveTestUtils.FUNCTION_RESOLUTION; -import static com.facebook.presto.hive.HiveTestUtils.METADATA; import static com.facebook.presto.hive.HiveTestUtils.PAGE_SORTER; import static com.facebook.presto.hive.HiveTestUtils.ROW_EXPRESSION_SERVICE; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; @@ -194,7 +193,6 @@ protected void setup(String host, int port, String databaseName, BiFunction Date: Fri, 1 May 2020 19:10:34 -0700 Subject: [PATCH 064/129] Optimize createPredicate in getTableLayout Since hive partition columns have exact values, we could deduplicate before creating SortedRangeSet, whose sorting could be very expensive when there are multiple partition columns and large number of partitions, and this sorting would happen multiple times during the query planning stage due to table layout related optimizations like filter pushdown. --- .../main/java/com/facebook/presto/hive/HiveMetadata.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 9c0b49866815c..dc93a0e0f2e36 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -117,8 +117,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; @@ -2238,7 +2238,7 @@ private static Domain buildColumnDomain(ColumnHandle column, List checkArgument(!partitions.isEmpty(), "partitions cannot be empty"); boolean hasNull = false; - List nonNullValues = new ArrayList<>(); + Set nonNullValues = new HashSet<>(); Type type = null; for (HivePartition partition : partitions) { @@ -2260,7 +2260,7 @@ private static Domain buildColumnDomain(ColumnHandle column, List } if (!nonNullValues.isEmpty()) { - Domain domain = Domain.multipleValues(type, nonNullValues); + Domain domain = Domain.multipleValues(type, ImmutableList.copyOf(nonNullValues)); if (hasNull) { return domain.union(Domain.onlyNull(type)); } From 1a15abad6eee705bdd3da7a15f6946883fc6727d Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:45:56 -0700 Subject: [PATCH 065/129] Add new presto-common module --- pom.xml | 7 +++++++ presto-common/pom.xml | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 presto-common/pom.xml diff --git a/pom.xml b/pom.xml index be9d02063e2c4..1900158b50b6e 100644 --- a/pom.xml +++ b/pom.xml @@ -158,6 +158,7 @@ presto-spark-launcher presto-spark-testing presto-druid + presto-common @@ -181,6 +182,12 @@ test-jar + + com.facebook.presto + presto-common + ${project.version} + + com.facebook.presto presto-resource-group-managers diff --git a/presto-common/pom.xml b/presto-common/pom.xml new file mode 100644 index 0000000000000..4d6be1934141c --- /dev/null +++ b/presto-common/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + + com.facebook.presto + presto-root + 0.236-SNAPSHOT + + + presto-common + presto-common + + + ${project.parent.basedir} + + + From c4635ef9bd65a5a8be3817737379039021c5fac8 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:46:00 -0700 Subject: [PATCH 066/129] Add types of Exceptions to presto-common --- .../common/GenericInternalException.java | 39 +++++++++++++++++++ .../InvalidFunctionArgumentException.java | 39 +++++++++++++++++++ .../presto/common/NotSupportedException.java | 39 +++++++++++++++++++ .../presto/common/OutOfRangeException.java | 39 +++++++++++++++++++ 4 files changed, 156 insertions(+) create mode 100644 presto-common/src/main/java/com/facebook/presto/common/GenericInternalException.java create mode 100644 presto-common/src/main/java/com/facebook/presto/common/InvalidFunctionArgumentException.java create mode 100644 presto-common/src/main/java/com/facebook/presto/common/NotSupportedException.java create mode 100644 presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java diff --git a/presto-common/src/main/java/com/facebook/presto/common/GenericInternalException.java b/presto-common/src/main/java/com/facebook/presto/common/GenericInternalException.java new file mode 100644 index 0000000000000..27970caefdd12 --- /dev/null +++ b/presto-common/src/main/java/com/facebook/presto/common/GenericInternalException.java @@ -0,0 +1,39 @@ +/* + * 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 com.facebook.presto.common; + +public class GenericInternalException + extends RuntimeException +{ + public GenericInternalException(String message) + { + this(message, null); + } + + public GenericInternalException(Throwable throwable) + { + this(null, throwable); + } + + public GenericInternalException(String message, Throwable cause) + { + super(message, cause); + } + + @Override + public String getMessage() + { + return super.getMessage(); + } +} diff --git a/presto-common/src/main/java/com/facebook/presto/common/InvalidFunctionArgumentException.java b/presto-common/src/main/java/com/facebook/presto/common/InvalidFunctionArgumentException.java new file mode 100644 index 0000000000000..811a6bffe3dad --- /dev/null +++ b/presto-common/src/main/java/com/facebook/presto/common/InvalidFunctionArgumentException.java @@ -0,0 +1,39 @@ +/* + * 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 com.facebook.presto.common; + +public class InvalidFunctionArgumentException + extends RuntimeException +{ + public InvalidFunctionArgumentException(String message) + { + this(message, null); + } + + public InvalidFunctionArgumentException(Throwable throwable) + { + this(null, throwable); + } + + public InvalidFunctionArgumentException(String message, Throwable cause) + { + super(message, cause); + } + + @Override + public String getMessage() + { + return super.getMessage(); + } +} diff --git a/presto-common/src/main/java/com/facebook/presto/common/NotSupportedException.java b/presto-common/src/main/java/com/facebook/presto/common/NotSupportedException.java new file mode 100644 index 0000000000000..0e8ffaa9123a1 --- /dev/null +++ b/presto-common/src/main/java/com/facebook/presto/common/NotSupportedException.java @@ -0,0 +1,39 @@ +/* + * 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 com.facebook.presto.common; + +public class NotSupportedException + extends RuntimeException +{ + public NotSupportedException(String message) + { + this(message, null); + } + + public NotSupportedException(Throwable throwable) + { + this(null, throwable); + } + + public NotSupportedException(String message, Throwable cause) + { + super(message, cause); + } + + @Override + public String getMessage() + { + return super.getMessage(); + } +} diff --git a/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java b/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java new file mode 100644 index 0000000000000..84c1bdf045715 --- /dev/null +++ b/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java @@ -0,0 +1,39 @@ +/* + * 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 com.facebook.presto.common; + +public class OutOfRangeException + extends RuntimeException +{ + public OutOfRangeException(String message) + { + this(message, null); + } + + public OutOfRangeException(Throwable throwable) + { + this(null, throwable); + } + + public OutOfRangeException(String message, Throwable cause) + { + super(message, cause); + } + + @Override + public String getMessage() + { + return super.getMessage(); + } +} From b5f7eea32cfcf5a490458baae789c76f211d7255 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:45:58 -0700 Subject: [PATCH 067/129] Refactor function package of presto-spi into presto-common --- presto-accumulo/pom.xml | 6 +++ presto-atop/pom.xml | 6 +++ presto-base-jdbc/pom.xml | 5 +++ .../function/OperatorTranslators.java | 8 ++-- presto-benchmark/pom.xml | 5 +++ .../benchmark/PredicateFilterBenchmark.java | 2 +- presto-blackhole/pom.xml | 6 +++ presto-cache/pom.xml | 6 +++ presto-cassandra/pom.xml | 6 +++ presto-common/pom.xml | 6 +++ .../presto/common}/CatalogSchemaName.java | 6 ++- .../common}/function/CatalogSchemaPrefix.java | 6 ++- .../presto/common}/function/OperatorType.java | 6 ++- .../function/QualifiedFunctionName.java | 6 ++- presto-druid/pom.xml | 6 +++ .../DruidAggregationProjectConverter.java | 2 +- .../druid/DruidFilterExpressionConverter.java | 2 +- .../presto/druid/DruidQueryGenerator.java | 2 - presto-elasticsearch/pom.xml | 6 +++ presto-example-http/pom.xml | 6 +++ presto-expressions/pom.xml | 5 +++ .../expressions/LogicalRowExpressions.java | 14 +++---- .../TranslatorAnnotationParser.java | 6 +-- presto-function-namespace-managers/pom.xml | 6 +++ ...actSqlInvokedFunctionNamespaceManager.java | 4 +- .../mysql/MySqlFunctionNamespaceManager.java | 4 +- .../mysql/SqlInvokedFunctionRowMapper.java | 4 +- .../InMemoryFunctionNamespaceManager.java | 2 +- .../testing/SqlInvokedFunctionTestUtils.java | 4 +- .../TestMySqlFunctionNamespaceManager.java | 4 +- presto-geospatial/pom.xml | 8 +++- .../plugin/geospatial/BingTileFunctions.java | 2 +- .../plugin/geospatial/BingTileOperators.java | 10 ++--- .../plugin/geospatial/KdbTreeCasts.java | 2 +- presto-hive-hadoop2/pom.xml | 6 +++ presto-hive/pom.xml | 5 +++ .../presto/hive/SubfieldExtractor.java | 2 +- .../presto/hive/TestDomainTranslator.java | 4 +- .../presto/hive/TestHiveLogicalPlanner.java | 2 +- .../presto/hive/TestSubfieldExtractor.java | 4 +- presto-i18n-functions/pom.xml | 6 +++ presto-jdbc/pom.xml | 4 ++ presto-jmx/pom.xml | 6 +++ presto-kafka/pom.xml | 6 +++ presto-kudu/pom.xml | 6 +++ presto-local-file/pom.xml | 6 +++ presto-main/pom.xml | 5 +++ .../presto/cost/FilterStatsCalculator.java | 2 +- .../presto/cost/ScalarStatsCalculator.java | 6 +-- .../presto/execution/AlterFunctionTask.java | 2 +- .../presto/execution/CreateFunctionTask.java | 2 +- .../presto/execution/CreateSchemaTask.java | 2 +- .../presto/execution/DropSchemaTask.java | 2 +- .../presto/execution/RenameSchemaTask.java | 2 +- .../metadata/BuiltInFunctionHandle.java | 2 +- .../BuiltInFunctionNamespaceManager.java | 8 ++-- .../facebook/presto/metadata/CastType.java | 4 +- .../metadata/FunctionInvokerProvider.java | 1 - .../presto/metadata/FunctionManager.java | 6 +-- .../facebook/presto/metadata/Metadata.java | 2 +- .../presto/metadata/MetadataManager.java | 20 +++++----- .../presto/metadata/MetadataUtil.java | 2 +- .../metadata/OperatorNotFoundException.java | 2 +- .../PolymorphicScalarFunctionBuilder.java | 2 +- .../presto/metadata/SignatureBuilder.java | 4 +- .../metadata/SqlAggregationFunction.java | 2 +- .../facebook/presto/metadata/SqlOperator.java | 2 +- .../presto/metadata/SqlScalarFunction.java | 2 +- .../operator/SimplePagesHashStrategy.java | 2 +- .../AbstractMinMaxAggregationFunction.java | 6 +-- .../AggregationImplementation.java | 2 +- .../ApproximateCountDistinctAggregation.java | 2 +- ...ltApproximateCountDistinctAggregation.java | 2 +- .../MergeStatisticalDigestFunction.java | 2 +- .../StatisticalDigestAggregationFunction.java | 2 +- .../minmaxby/AbstractMinMaxBy.java | 6 +-- .../annotations/FunctionsParserHelper.java | 20 +++++----- .../OperatorImplementationDependency.java | 2 +- .../index/FieldSetFilteringRecordSet.java | 2 +- .../scalar/AbstractGreatestLeast.java | 4 +- .../presto/operator/scalar/ApplyFunction.java | 2 +- .../operator/scalar/ArrayConcatFunction.java | 2 +- .../operator/scalar/ArrayConstructor.java | 2 +- .../presto/operator/scalar/ArrayContains.java | 2 +- .../scalar/ArrayDistinctFromOperator.java | 2 +- .../operator/scalar/ArrayEqualOperator.java | 2 +- .../operator/scalar/ArrayFlattenFunction.java | 2 +- .../scalar/ArrayGreaterThanOperator.java | 2 +- .../ArrayGreaterThanOrEqualOperator.java | 4 +- .../scalar/ArrayHashCodeOperator.java | 2 +- .../scalar/ArrayIndeterminateOperator.java | 2 +- .../presto/operator/scalar/ArrayJoin.java | 2 +- .../scalar/ArrayLessThanOperator.java | 2 +- .../scalar/ArrayLessThanOrEqualOperator.java | 4 +- .../operator/scalar/ArrayMaxFunction.java | 2 +- .../operator/scalar/ArrayMinFunction.java | 2 +- .../scalar/ArrayNotEqualOperator.java | 4 +- .../scalar/ArrayPositionFunction.java | 2 +- .../operator/scalar/ArrayReduceFunction.java | 2 +- .../operator/scalar/ArrayRemoveFunction.java | 2 +- .../operator/scalar/ArraySortFunction.java | 2 +- .../scalar/ArraySubscriptOperator.java | 2 +- .../operator/scalar/ArrayToArrayCast.java | 2 +- .../scalar/ArrayToElementConcatFunction.java | 2 +- .../operator/scalar/ArrayToJsonCast.java | 2 +- .../scalar/ArrayTransformFunction.java | 2 +- .../scalar/ArraysOverlapFunction.java | 2 +- .../scalar/CastFromUnknownOperator.java | 2 +- .../operator/scalar/CharacterStringCasts.java | 2 +- .../operator/scalar/ConcatFunction.java | 2 +- .../scalar/ElementToArrayConcatFunction.java | 2 +- .../presto/operator/scalar/Greatest.java | 4 +- .../presto/operator/scalar/IdentityCast.java | 2 +- .../operator/scalar/InvokeFunction.java | 2 +- .../operator/scalar/JoniRegexpCasts.java | 2 +- .../presto/operator/scalar/JsonFunctions.java | 2 +- .../presto/operator/scalar/JsonOperators.java | 12 +++--- .../scalar/JsonStringToArrayCast.java | 2 +- .../operator/scalar/JsonStringToMapCast.java | 2 +- .../operator/scalar/JsonStringToRowCast.java | 2 +- .../operator/scalar/JsonToArrayCast.java | 2 +- .../presto/operator/scalar/JsonToMapCast.java | 2 +- .../presto/operator/scalar/JsonToRowCast.java | 2 +- .../presto/operator/scalar/Least.java | 4 +- .../operator/scalar/MapConcatFunction.java | 2 +- .../operator/scalar/MapConstructor.java | 6 +-- .../scalar/MapDistinctFromOperator.java | 2 +- .../operator/scalar/MapElementAtFunction.java | 4 +- .../operator/scalar/MapEqualOperator.java | 4 +- .../operator/scalar/MapFilterFunction.java | 2 +- .../operator/scalar/MapHashCodeOperator.java | 2 +- .../scalar/MapIndeterminateOperator.java | 2 +- .../operator/scalar/MapNotEqualOperator.java | 6 +-- .../operator/scalar/MapSubscriptOperator.java | 2 +- .../presto/operator/scalar/MapToJsonCast.java | 2 +- .../presto/operator/scalar/MapToMapCast.java | 2 +- .../scalar/MapTransformKeyFunction.java | 2 +- .../scalar/MapTransformValueFunction.java | 2 +- .../operator/scalar/MapZipWithFunction.java | 2 +- .../scalar/Re2JCastToRegexpFunction.java | 2 +- .../scalar/RowComparisonOperator.java | 2 +- .../scalar/RowDistinctFromOperator.java | 2 +- .../operator/scalar/RowEqualOperator.java | 2 +- .../scalar/RowGreaterThanOperator.java | 2 +- .../scalar/RowGreaterThanOrEqualOperator.java | 4 +- .../operator/scalar/RowHashCodeOperator.java | 2 +- .../scalar/RowIndeterminateOperator.java | 2 +- .../operator/scalar/RowLessThanOperator.java | 2 +- .../scalar/RowLessThanOrEqualOperator.java | 4 +- .../operator/scalar/RowNotEqualOperator.java | 2 +- .../presto/operator/scalar/RowToJsonCast.java | 2 +- .../presto/operator/scalar/RowToRowCast.java | 2 +- .../operator/scalar/StringFunctions.java | 2 +- .../operator/scalar/TryCastFunction.java | 2 +- .../presto/operator/scalar/ZipFunction.java | 2 +- .../operator/scalar/ZipWithFunction.java | 2 +- .../scalar/annotations/OperatorValidator.java | 2 +- .../ScalarImplementationHeader.java | 4 +- .../ReflectionWindowFunctionSupplier.java | 2 +- .../window/WindowAnnotationsParser.java | 2 +- .../presto/security/AccessControl.java | 2 +- .../presto/security/AccessControlManager.java | 2 +- .../security/AllowAllAccessControl.java | 2 +- .../security/AllowAllSystemAccessControl.java | 2 +- .../presto/security/DenyAllAccessControl.java | 2 +- .../FileBasedSystemAccessControl.java | 2 +- .../security/ReadOnlySystemAccessControl.java | 2 +- .../facebook/presto/server/PluginManager.java | 1 + .../sql/analyzer/ExpressionAnalyzer.java | 4 +- .../sql/analyzer/StatementAnalyzer.java | 4 +- .../presto/sql/gen/InCodeGenerator.java | 6 +-- .../facebook/presto/sql/gen/JoinCompiler.java | 2 +- .../presto/sql/gen/NullIfCodeGenerator.java | 4 +- .../presto/sql/gen/SwitchCodeGenerator.java | 2 +- .../sql/planner/ExpressionInterpreter.java | 2 +- .../presto/sql/planner/LiteralEncoder.java | 2 +- .../sql/planner/LocalExecutionPlanner.java | 4 +- .../sql/planner/NullabilityAnalyzer.java | 2 +- .../RowExpressionEqualityInference.java | 4 +- .../sql/planner/RowExpressionInterpreter.java | 4 +- .../RowExpressionPredicateExtractor.java | 2 +- .../sql/planner/SortExpressionExtractor.java | 2 +- .../iterative/rule/ExtractSpatialJoins.java | 2 +- .../rule/PushAggregationThroughOuterJoin.java | 2 +- .../planner/iterative/rule/ReorderJoins.java | 2 +- ...RewriteSpatialPartitioningAggregation.java | 2 +- .../optimizations/ExpressionEquivalence.java | 16 ++++---- .../HashGenerationOptimizer.java | 2 +- .../planner/optimizations/JoinNodeUtils.java | 2 +- .../optimizations/MetadataQueryOptimizer.java | 2 +- .../OptimizeMixedDistinctAggregations.java | 4 +- .../optimizations/PushdownSubfields.java | 2 +- .../RowExpressionPredicatePushDown.java | 4 +- .../sql/relational/FunctionResolution.java | 34 ++++++++--------- .../RowExpressionDomainTranslator.java | 18 ++++----- .../SqlToRowExpressionTranslator.java | 6 +-- .../sql/rewrite/ShowQueriesRewrite.java | 4 +- .../testing/TestingAccessControlManager.java | 2 +- .../facebook/presto/type/BigintOperators.java | 38 +++++++++---------- .../presto/type/BooleanOperators.java | 22 +++++------ .../facebook/presto/type/CharOperators.java | 22 +++++------ .../facebook/presto/type/ColorOperators.java | 10 ++--- .../facebook/presto/type/DateOperators.java | 24 ++++++------ .../presto/type/DateTimeOperators.java | 4 +- .../facebook/presto/type/DecimalCasts.java | 2 +- .../type/DecimalInequalityOperators.java | 18 ++++----- .../presto/type/DecimalOperators.java | 18 ++++----- .../type/DecimalSaturatedFloorCasts.java | 2 +- .../presto/type/DecimalToDecimalCasts.java | 2 +- .../facebook/presto/type/DoubleOperators.java | 38 +++++++++---------- .../presto/type/HyperLogLogOperators.java | 2 +- .../presto/type/IntegerOperators.java | 38 +++++++++---------- .../presto/type/IntervalDayTimeOperators.java | 32 ++++++++-------- .../type/IntervalYearMonthOperators.java | 32 ++++++++-------- .../presto/type/IpAddressOperators.java | 24 ++++++------ .../presto/type/IpPrefixOperators.java | 24 ++++++------ .../facebook/presto/type/LikeFunctions.java | 2 +- .../presto/type/MapParametricType.java | 2 +- .../presto/type/QuantileDigestOperators.java | 2 +- .../facebook/presto/type/RealOperators.java | 38 +++++++++---------- .../presto/type/SmallintOperators.java | 38 +++++++++---------- .../presto/type/TDigestOperators.java | 2 +- .../facebook/presto/type/TimeOperators.java | 26 ++++++------- .../type/TimeWithTimeZoneOperators.java | 26 ++++++------- .../presto/type/TimestampOperators.java | 26 ++++++------- .../type/TimestampWithTimeZoneOperators.java | 26 ++++++------- .../presto/type/TinyintOperators.java | 36 +++++++++--------- .../facebook/presto/type/TypeRegistry.java | 2 +- .../presto/type/UnknownOperators.java | 20 +++++----- .../presto/type/VarbinaryOperators.java | 22 +++++------ .../presto/type/VarcharOperators.java | 24 ++++++------ .../khyperloglog/KHyperLogLogOperators.java | 2 +- .../type/setdigest/SetDigestOperators.java | 2 +- .../presto/util/FastutilSetHelper.java | 4 +- .../presto/util/SpatialJoinUtils.java | 18 ++++----- .../presto/block/BlockAssertions.java | 2 +- .../presto/metadata/AbstractMockMetadata.java | 2 +- .../presto/metadata/TestFunctionManager.java | 8 ++-- .../TestPolymorphicScalarFunction.java | 4 +- .../presto/metadata/TestSignature.java | 2 +- .../presto/operator/GenericLongFunction.java | 2 +- .../TestAnnotationEngineForAggregates.java | 4 +- .../TestAnnotationEngineForScalars.java | 2 +- .../TestFilterAndProjectOperator.java | 6 +-- .../TestScanFilterAndProjectOperator.java | 2 +- ...enchmarkDictionaryBlockGetSizeInBytes.java | 2 +- .../operator/project/TestPageProcessor.java | 2 +- .../repartition/TestBlockEncodingBuffers.java | 2 +- .../scalar/AbstractTestFunctions.java | 4 +- .../operator/scalar/BenchmarkArrayFilter.java | 4 +- .../BenchmarkArrayHashCodeOperator.java | 2 +- .../scalar/BenchmarkArraySubscript.java | 2 +- .../scalar/BenchmarkArrayTransform.java | 2 +- .../scalar/BenchmarkEqualsOperator.java | 2 +- .../scalar/BenchmarkMapSubscript.java | 2 +- .../scalar/BenchmarkTransformKey.java | 2 +- .../scalar/BenchmarkTransformValue.java | 2 +- .../operator/scalar/TestColorFunctions.java | 2 +- .../scalar/TestOperatorValidation.java | 2 +- .../scalar/TestPageProcessorCompiler.java | 2 +- ...idedBlockBuilderReturnPlaceConvention.java | 2 +- .../scalar/TestVarbinaryFunctions.java | 2 +- .../security/TestAccessControlManager.java | 2 +- .../TestFileBasedSystemAccessControl.java | 2 +- .../presto/sql/TestRowExpressionSerde.java | 4 +- .../sql/gen/BenchmarkPageProcessor.java | 8 ++-- .../sql/gen/TestPageFunctionCompiler.java | 6 +-- .../TestRowExpressionPredicateCompiler.java | 8 ++-- .../TestVarArgsToArrayAdapterGenerator.java | 2 +- .../sql/planner/TestPredicatePushdown.java | 2 +- .../TestRowExpressionDomainTranslator.java | 8 ++-- .../TestRowExpressionEqualityInference.java | 6 +-- .../planner/TestRowExpressionFormatter.java | 36 +++++++++--------- .../TestRowExpressionPredicateExtractor.java | 10 ++--- .../planner/TestRowExpressionRewriter.java | 4 +- .../TestRowExpressionVariableInliner.java | 4 +- .../assertions/RowExpressionVerifier.java | 26 ++++++------- .../iterative/rule/TestJoinNodeFlattener.java | 2 +- .../TestPushProjectionThroughExchange.java | 2 +- .../iterative/rule/TestReorderJoins.java | 6 +-- .../rule/TestTranslateExpressions.java | 2 +- .../iterative/rule/test/PlanBuilder.java | 2 +- .../TestVerifyNoOriginalExpression.java | 2 +- .../relational/TestDeterminismEvaluator.java | 2 +- .../relational/TestFunctionResolution.java | 4 +- .../relational/TestLogicalRowExpressions.java | 14 +++---- .../TestRowExpressionOptimizer.java | 4 +- .../TestRowExpressionTranslator.java | 2 +- .../sql/relational/TestSubExpressions.java | 4 +- .../presto/type/BenchmarkBigIntOperators.java | 10 ++--- .../presto/type/TestArrayOperators.java | 4 +- .../presto/type/TestBigintOperators.java | 2 +- .../presto/type/TestBooleanOperators.java | 2 +- .../presto/type/TestCharOperators.java | 2 +- .../facebook/presto/type/TestDateBase.java | 2 +- .../presto/type/TestDecimalOperators.java | 2 +- .../presto/type/TestDoubleOperators.java | 2 +- .../presto/type/TestIntegerOperators.java | 2 +- .../presto/type/TestIntervalDayTime.java | 2 +- .../presto/type/TestIntervalYearMonth.java | 2 +- .../presto/type/TestIpAddressOperators.java | 4 +- .../presto/type/TestIpPrefixOperators.java | 4 +- .../presto/type/TestJsonOperators.java | 2 +- .../presto/type/TestMapOperators.java | 4 +- .../presto/type/TestRealOperators.java | 2 +- .../presto/type/TestRowOperators.java | 4 +- .../presto/type/TestSmallintOperators.java | 2 +- .../facebook/presto/type/TestTimeBase.java | 2 +- .../presto/type/TestTimeWithTimeZoneBase.java | 2 +- .../presto/type/TestTimestampBase.java | 2 +- .../type/TestTimestampWithTimeZoneBase.java | 2 +- .../presto/type/TestTinyintOperators.java | 2 +- .../presto/type/TestTypeRegistry.java | 16 ++++---- .../presto/type/TestUnknownOperators.java | 2 +- .../presto/type/TestVarcharOperators.java | 2 +- presto-memory/pom.xml | 6 +++ presto-ml/pom.xml | 6 +++ presto-mongodb/pom.xml | 6 +++ .../presto/mongodb/ObjectIdFunctions.java | 16 ++++---- presto-mysql/pom.xml | 6 +++ presto-orc/pom.xml | 5 +++ .../presto/orc/TestOrcReaderMemoryUsage.java | 2 +- presto-password-authenticators/pom.xml | 6 +++ presto-pinot-toolkit/pom.xml | 6 +++ .../PinotAggregationProjectConverter.java | 2 +- .../query/PinotFilterExpressionConverter.java | 2 +- presto-pinot/pom.xml | 6 +++ presto-plugin-toolkit/pom.xml | 5 +++ .../ForwardingSystemAccessControl.java | 2 +- presto-postgresql/pom.xml | 6 +++ presto-raptor/pom.xml | 6 +++ presto-redis/pom.xml | 6 +++ presto-redshift/pom.xml | 6 +++ presto-resource-group-managers/pom.xml | 6 +++ presto-session-property-managers/pom.xml | 6 +++ presto-spi/pom.xml | 5 +++ .../spi/block/SingleMapBlockEncoding.java | 2 +- .../presto/spi/function/FunctionHandle.java | 4 +- .../presto/spi/function/FunctionMetadata.java | 2 + .../function/FunctionNamespaceManager.java | 1 + .../spi/function/OperatorDependency.java | 2 + .../presto/spi/function/ScalarOperator.java | 2 + .../presto/spi/function/Signature.java | 1 + .../spi/function/SqlFunctionHandle.java | 2 +- .../presto/spi/function/SqlFunctionId.java | 1 + .../spi/function/SqlInvokedFunction.java | 1 + .../function/StandardFunctionResolution.java | 1 + .../spi/security/SystemAccessControl.java | 2 +- .../facebook/presto/spi/type/TypeManager.java | 2 +- .../presto/spi/type/TestingTypeManager.java | 2 +- presto-sqlserver/pom.xml | 6 +++ presto-teradata-functions/pom.xml | 6 +++ presto-tests/pom.xml | 5 +++ .../presto/tests/StatefulSleepingSum.java | 2 +- presto-thrift-connector/pom.xml | 6 +++ presto-tpcds/pom.xml | 6 +++ presto-tpch/pom.xml | 6 +++ presto-verifier/pom.xml | 2 +- 358 files changed, 1093 insertions(+), 819 deletions(-) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/CatalogSchemaName.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/function/CatalogSchemaPrefix.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/function/OperatorType.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/function/QualifiedFunctionName.java (93%) diff --git a/presto-accumulo/pom.xml b/presto-accumulo/pom.xml index 2a5e320f9e1d0..1bd64d923bad6 100644 --- a/presto-accumulo/pom.xml +++ b/presto-accumulo/pom.xml @@ -269,6 +269,12 @@ provided + + com.facebook.presto + presto-common + provided + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-atop/pom.xml b/presto-atop/pom.xml index cd643dd25648b..bea1b9c71dca7 100644 --- a/presto-atop/pom.xml +++ b/presto-atop/pom.xml @@ -92,6 +92,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-base-jdbc/pom.xml b/presto-base-jdbc/pom.xml index b33c9403d8460..722b3b9ea748b 100644 --- a/presto-base-jdbc/pom.xml +++ b/presto-base-jdbc/pom.xml @@ -90,6 +90,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java index ff47b33767df5..cfa3e4f1e8bf1 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java @@ -19,12 +19,12 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.plugin.jdbc.optimization.function.JdbcTranslationUtil.forwardBindVariables; import static com.facebook.presto.plugin.jdbc.optimization.function.JdbcTranslationUtil.infixOperation; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; public class OperatorTranslators { diff --git a/presto-benchmark/pom.xml b/presto-benchmark/pom.xml index e45b440505076..0cc16a3a991ce 100644 --- a/presto-benchmark/pom.xml +++ b/presto-benchmark/pom.xml @@ -21,6 +21,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto presto-main diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java index 7a28e70b6ea99..9183b1743c8ce 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java @@ -30,7 +30,7 @@ import java.util.function.Supplier; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-blackhole/pom.xml b/presto-blackhole/pom.xml index 6a067199d8739..e7335f68f2665 100644 --- a/presto-blackhole/pom.xml +++ b/presto-blackhole/pom.xml @@ -41,6 +41,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-cache/pom.xml b/presto-cache/pom.xml index 9a12e18a30153..188d4f29f3793 100644 --- a/presto-cache/pom.xml +++ b/presto-cache/pom.xml @@ -69,6 +69,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-cassandra/pom.xml b/presto-cassandra/pom.xml index 08b4319bb192f..a0c410ef624ec 100644 --- a/presto-cassandra/pom.xml +++ b/presto-cassandra/pom.xml @@ -94,6 +94,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-common/pom.xml b/presto-common/pom.xml index 4d6be1934141c..861ea1328e2d5 100644 --- a/presto-common/pom.xml +++ b/presto-common/pom.xml @@ -15,4 +15,10 @@ ${project.parent.basedir} + + + com.fasterxml.jackson.core + jackson-annotations + + diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/CatalogSchemaName.java b/presto-common/src/main/java/com/facebook/presto/common/CatalogSchemaName.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/CatalogSchemaName.java rename to presto-common/src/main/java/com/facebook/presto/common/CatalogSchemaName.java index 78c3de9e4b60d..2c7e6b54e6f61 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/CatalogSchemaName.java +++ b/presto-common/src/main/java/com/facebook/presto/common/CatalogSchemaName.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; -import com.facebook.presto.spi.function.CatalogSchemaPrefix; +import com.facebook.presto.common.function.CatalogSchemaPrefix; import java.util.Objects; import java.util.Optional; @@ -23,6 +23,8 @@ public final class CatalogSchemaName { + // TODO: Move out this class. Ideally this class should not be in presto-common module. + private final String catalogName; private final String schemaName; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/CatalogSchemaPrefix.java b/presto-common/src/main/java/com/facebook/presto/common/function/CatalogSchemaPrefix.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/function/CatalogSchemaPrefix.java rename to presto-common/src/main/java/com/facebook/presto/common/function/CatalogSchemaPrefix.java index 4d9c69b4229a5..2e969f023db64 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/CatalogSchemaPrefix.java +++ b/presto-common/src/main/java/com/facebook/presto/common/function/CatalogSchemaPrefix.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.function; +package com.facebook.presto.common.function; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import java.util.Objects; import java.util.Optional; @@ -22,6 +22,8 @@ public class CatalogSchemaPrefix { + // TODO: Move out this class. Ideally this class should not be in presto-common module. + private final String catalogName; private final Optional schemaName; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorType.java b/presto-common/src/main/java/com/facebook/presto/common/function/OperatorType.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorType.java rename to presto-common/src/main/java/com/facebook/presto/common/function/OperatorType.java index bf249df9df7ae..3f471a393e70d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/function/OperatorType.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.function; +package com.facebook.presto.common.function; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import java.util.Arrays; import java.util.Map; @@ -24,6 +24,8 @@ public enum OperatorType { + // TODO: Move out this class. Ideally this class should not be in presto-common module. + ADD("+", false), SUBTRACT("-", false), MULTIPLY("*", false), diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/QualifiedFunctionName.java b/presto-common/src/main/java/com/facebook/presto/common/function/QualifiedFunctionName.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/function/QualifiedFunctionName.java rename to presto-common/src/main/java/com/facebook/presto/common/function/QualifiedFunctionName.java index 706298c5769cc..7a8030bbe6ccd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/QualifiedFunctionName.java +++ b/presto-common/src/main/java/com/facebook/presto/common/function/QualifiedFunctionName.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.function; +package com.facebook.presto.common.function; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; @@ -24,6 +24,8 @@ public class QualifiedFunctionName { + // TODO: Move out this class. Ideally this class should not be in presto-common module. + private final CatalogSchemaName functionNamespace; private final String functionName; diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml index c9a35b0f94cbb..85e211d28b05a 100644 --- a/presto-druid/pom.xml +++ b/presto-druid/pom.xml @@ -204,6 +204,12 @@ provided + + com.facebook.presto + presto-common + provided + + com.facebook.presto presto-expressions diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java index 7cde20c757f29..0c4b38c586ecf 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionMetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java index c503ef26f81d2..a872d913f5d11 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.druid.DruidQueryGeneratorContext.Origin; import com.facebook.presto.druid.DruidQueryGeneratorContext.Selection; import com.facebook.presto.spi.ConnectorSession; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionMetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java index 18e64649cfe9b..bf672f40be711 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java @@ -49,8 +49,6 @@ import java.util.stream.Collectors; import static com.facebook.presto.druid.DruidAggregationColumnNode.AggregationFunctionColumnNode; -import static com.facebook.presto.druid.DruidAggregationColumnNode.ExpressionType.AGGREGATE; -import static com.facebook.presto.druid.DruidAggregationColumnNode.ExpressionType.GROUP_BY; import static com.facebook.presto.druid.DruidAggregationColumnNode.GroupByColumnNode; import static com.facebook.presto.druid.DruidErrorCode.DRUID_PUSHDOWN_UNSUPPORTED_EXPRESSION; import static com.facebook.presto.druid.DruidPushdownUtils.computeAggregationNodes; diff --git a/presto-elasticsearch/pom.xml b/presto-elasticsearch/pom.xml index 762231d577a2c..f7c0975aad665 100644 --- a/presto-elasticsearch/pom.xml +++ b/presto-elasticsearch/pom.xml @@ -197,6 +197,12 @@ provided + + com.facebook.presto + presto-common + provided + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-example-http/pom.xml b/presto-example-http/pom.xml index d078028d92e75..bd05da81d02bd 100644 --- a/presto-example-http/pom.xml +++ b/presto-example-http/pom.xml @@ -68,6 +68,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-expressions/pom.xml b/presto-expressions/pom.xml index 565a169aebbb1..5e693076c9934 100644 --- a/presto-expressions/pom.xml +++ b/presto-expressions/pom.xml @@ -26,6 +26,11 @@ presto-spi + + com.facebook.presto + presto-common + + org.testng diff --git a/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java b/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java index 6592b3ff3e760..ed9dceaa2b80a 100644 --- a/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java +++ b/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.expressions; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.function.FunctionMetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; @@ -41,12 +41,12 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java b/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java index 05a0ce064de97..1d650d936e984 100644 --- a/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java +++ b/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.expressions.translator; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-function-namespace-managers/pom.xml b/presto-function-namespace-managers/pom.xml index 9769e3b7b4007..7806b49cffd2e 100644 --- a/presto-function-namespace-managers/pom.xml +++ b/presto-function-namespace-managers/pom.xml @@ -39,6 +39,12 @@ provided + + com.facebook.presto + presto-common + provided + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/AbstractSqlInvokedFunctionNamespaceManager.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/AbstractSqlInvokedFunctionNamespaceManager.java index bf281e77db2fa..1ebd3682d2804 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/AbstractSqlInvokedFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/AbstractSqlInvokedFunctionNamespaceManager.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.functionNamespace; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionNamespaceManager; import com.facebook.presto.spi.function.FunctionNamespaceTransactionHandle; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java index 22ca73af9dab8..847c3d7c30161 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.functionNamespace.mysql; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.functionNamespace.AbstractSqlInvokedFunctionNamespaceManager; import com.facebook.presto.functionNamespace.InvalidFunctionHandleException; import com.facebook.presto.functionNamespace.ServingCatalog; import com.facebook.presto.functionNamespace.SqlInvokedFunctionNamespaceManagerConfig; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.ScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java index 0be69c0c77d27..62258e8e385cf 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java @@ -14,8 +14,8 @@ package com.facebook.presto.functionNamespace.mysql; import com.facebook.airlift.json.JsonCodec; -import com.facebook.presto.spi.CatalogSchemaName; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java index edea928d5bb19..bc94d750f0344 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.functionNamespace.testing; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.functionNamespace.AbstractSqlInvokedFunctionNamespaceManager; import com.facebook.presto.functionNamespace.SqlInvokedFunctionNamespaceManagerConfig; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunctionImplementation; import com.facebook.presto.spi.function.SqlFunctionHandle; import com.facebook.presto.spi.function.SqlFunctionId; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java index 057e11324c0c6..3fe530a7e1aa8 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.functionNamespace.testing; -import com.facebook.presto.spi.CatalogSchemaName; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; diff --git a/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java b/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java index bb2b198f69ae1..527bb7b34aceb 100644 --- a/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java @@ -15,14 +15,14 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.bootstrap.LifeCycleManager; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionNamespaceTransactionHandle; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.SqlFunctionHandle; import com.facebook.presto.spi.function.SqlFunctionId; diff --git a/presto-geospatial/pom.xml b/presto-geospatial/pom.xml index 38cddc8aaca34..52ed77b107811 100644 --- a/presto-geospatial/pom.xml +++ b/presto-geospatial/pom.xml @@ -48,10 +48,16 @@ com.facebook.presto - presto-spi + presto-common provided + + com.facebook.presto + presto-spi + provided + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java index 0dcdd1dd5d181..afe0535fa0069 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java @@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.geospatial.GeometryUtils.contains; import static com.facebook.presto.geospatial.GeometryUtils.disjoint; import static com.facebook.presto.geospatial.GeometryUtils.getEnvelope; @@ -41,7 +42,6 @@ import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java index 9fbe849b7bcab..c5b3d5740b64f 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java @@ -21,11 +21,11 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.XxHash64; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; public final class BingTileOperators { diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java index 91c0d332e3907..576df064d3642 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java @@ -21,8 +21,8 @@ import com.facebook.presto.spi.type.KdbTreeType; import io.airlift.slice.Slice; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.CAST; public final class KdbTreeCasts { diff --git a/presto-hive-hadoop2/pom.xml b/presto-hive-hadoop2/pom.xml index cf4e1cc09904a..8535897029ce3 100644 --- a/presto-hive-hadoop2/pom.xml +++ b/presto-hive-hadoop2/pom.xml @@ -45,6 +45,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index c5b863d6f1062..f4a54a892588e 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -272,6 +272,11 @@ presto-spi + + com.facebook.presto + presto-common + + io.airlift slice diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java index d3bf1ca4c42b4..6e23cfdbafe14 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java @@ -37,8 +37,8 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.hive.HiveSessionProperties.isRangeFiltersOnSubscriptsEnabled; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.IntegerType.INTEGER; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java index 0491f2da8b45a..17e5912bf55d7 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; @@ -49,10 +49,10 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.createArrayBigintBlock; import static com.facebook.presto.block.BlockAssertions.createMapBlock; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.relation.ConstantExpression.createConstantExpression; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java index b6abbabe5bece..61ad210c55901 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java @@ -57,6 +57,7 @@ import java.util.Set; import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveQueryRunner.HIVE_CATALOG; import static com.facebook.presto.hive.HiveQueryRunner.createQueryRunner; @@ -64,7 +65,6 @@ import static com.facebook.presto.hive.HiveSessionProperties.PUSHDOWN_FILTER_ENABLED; import static com.facebook.presto.hive.HiveSessionProperties.RANGE_FILTERS_ON_SUBSCRIPTS_ENABLED; import static com.facebook.presto.hive.TestHiveIntegrationSmokeTest.assertRemoteExchangesCount; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.predicate.Domain.multipleValues; import static com.facebook.presto.spi.predicate.Domain.notNull; import static com.facebook.presto.spi.predicate.Domain.singleValue; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java index ba67a084ca6e6..d285f6393fc37 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.TestingSession; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.ExpressionOptimizer; import com.facebook.presto.spi.relation.RowExpression; @@ -40,9 +40,9 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.DateType.DATE; diff --git a/presto-i18n-functions/pom.xml b/presto-i18n-functions/pom.xml index f93c344167dc6..f18c179608b8e 100644 --- a/presto-i18n-functions/pom.xml +++ b/presto-i18n-functions/pom.xml @@ -40,6 +40,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-jdbc/pom.xml b/presto-jdbc/pom.xml index 77784b46351bf..5584b43199f79 100644 --- a/presto-jdbc/pom.xml +++ b/presto-jdbc/pom.xml @@ -212,6 +212,10 @@ com.facebook.presto.spi ${shadeBase}.spi + + com.facebook.presto.common + ${shadeBase}.common + com.fasterxml.jackson ${shadeBase}.jackson diff --git a/presto-jmx/pom.xml b/presto-jmx/pom.xml index 43c55108a3e58..b823fecdafb38 100644 --- a/presto-jmx/pom.xml +++ b/presto-jmx/pom.xml @@ -79,6 +79,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-kafka/pom.xml b/presto-kafka/pom.xml index 8b8803641b44c..b34db9e37e3dc 100644 --- a/presto-kafka/pom.xml +++ b/presto-kafka/pom.xml @@ -101,6 +101,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-kudu/pom.xml b/presto-kudu/pom.xml index 50bec4c5e3576..ba3349bf6700f 100644 --- a/presto-kudu/pom.xml +++ b/presto-kudu/pom.xml @@ -96,6 +96,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-local-file/pom.xml b/presto-local-file/pom.xml index 095f1cea336a2..a4d994ded1ab3 100644 --- a/presto-local-file/pom.xml +++ b/presto-local-file/pom.xml @@ -64,6 +64,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-main/pom.xml b/presto-main/pom.xml index cf6acd56404d7..1ffdf583e25bd 100644 --- a/presto-main/pom.xml +++ b/presto-main/pom.xml @@ -41,6 +41,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto presto-array diff --git a/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java b/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java index 2cc7c2436c2e8..f37fe603be8c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java @@ -14,12 +14,12 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java b/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java index 927254e5908ec..8b9b232887b5f 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java @@ -14,11 +14,11 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; @@ -56,9 +56,9 @@ import java.util.Map; import java.util.OptionalDouble; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.MODULUS; import static com.facebook.presto.cost.StatsUtil.toStatsRepresentation; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.COALESCE; import static com.facebook.presto.sql.planner.LiteralInterpreter.evaluate; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java index dc67e67d84260..f85e587ef0614 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics.NullCallClause; import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.Analyzer; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java index c686c3359e587..33775045a98a1 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.SqlFunctionHandle; import com.facebook.presto.spi.function.SqlInvokedFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CreateSchemaTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CreateSchemaTask.java index 1f681e5a2f99f..446c8c915eaa9 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CreateSchemaTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CreateSchemaTask.java @@ -14,9 +14,9 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.sql.analyzer.SemanticException; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/DropSchemaTask.java b/presto-main/src/main/java/com/facebook/presto/execution/DropSchemaTask.java index f1ac49c70c4cc..153bbe7e03d81 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/DropSchemaTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/DropSchemaTask.java @@ -14,9 +14,9 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.DropSchema; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/RenameSchemaTask.java b/presto-main/src/main/java/com/facebook/presto/execution/RenameSchemaTask.java index a14859cfd02b1..4dccd64bf0e42 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/RenameSchemaTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/RenameSchemaTask.java @@ -14,9 +14,9 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.RenameSchema; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionHandle.java b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionHandle.java index c0db340eb834f..efb75884fb0c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionHandle.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionHandle.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.metadata; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.Signature; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java index eb95a6be0ce37..3cf74a0217e73 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.operator.aggregation.ApproximateCountDistinctAggregation; import com.facebook.presto.operator.aggregation.ApproximateDoublePercentileAggregations; import com.facebook.presto.operator.aggregation.ApproximateDoublePercentileArrayAggregations; @@ -156,7 +159,6 @@ import com.facebook.presto.operator.window.RowNumberFunction; import com.facebook.presto.operator.window.SqlWindowFunction; import com.facebook.presto.operator.window.WindowFunctionSupplier; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockEncodingSerde; @@ -166,8 +168,6 @@ import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionNamespaceManager; import com.facebook.presto.spi.function.FunctionNamespaceTransactionHandle; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; @@ -232,6 +232,7 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.tryGetOperatorType; import static com.facebook.presto.metadata.SignatureBinder.applyBoundVariables; import static com.facebook.presto.operator.aggregation.ArbitraryAggregationFunction.ARBITRARY_AGGREGATION; import static com.facebook.presto.operator.aggregation.ChecksumAggregationFunction.CHECKSUM_AGGREGATION; @@ -316,7 +317,6 @@ import static com.facebook.presto.spi.function.FunctionKind.AGGREGATE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.FunctionKind.WINDOW; -import static com.facebook.presto.spi.function.OperatorType.tryGetOperatorType; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/CastType.java b/presto-main/src/main/java/com/facebook/presto/metadata/CastType.java index 6e53d79797ede..e21a85db7a8ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/CastType.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/CastType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.metadata; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.JsonStringToArrayCast.JSON_STRING_TO_ARRAY_NAME; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionInvokerProvider.java b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionInvokerProvider.java index 60bf6466338ea..e177b39d08442 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionInvokerProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionInvokerProvider.java @@ -63,7 +63,6 @@ static boolean checkChoice(List definitionArgumentProperties, for (int i = 0; i < definitionArgumentProperties.size(); i++) { InvocationArgumentConvention invocationArgumentConvention = invocationConvention.get().getArgumentConvention(i); NullConvention nullConvention = definitionArgumentProperties.get(i).getNullConvention(); - // return false because function types do not have a null convention if (definitionArgumentProperties.get(i).getArgumentType() == FUNCTION_TYPE) { if (invocationArgumentConvention != InvocationArgumentConvention.FUNCTION) { diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java index ec5b8c9d74df3..ee16b78d78ec9 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java @@ -15,10 +15,12 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.window.WindowFunctionSupplier; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; @@ -29,8 +31,6 @@ import com.facebook.presto.spi.function.FunctionNamespaceManager; import com.facebook.presto.spi.function.FunctionNamespaceManagerFactory; import com.facebook.presto.spi.function.FunctionNamespaceTransactionHandle; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java index d1fcca43f2cb9..1999528b239c1 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java @@ -14,7 +14,7 @@ package com.facebook.presto.metadata; import com.facebook.presto.Session; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java index 602a3dd9635d5..5b81b2a14341d 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java @@ -18,7 +18,8 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; @@ -45,7 +46,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorPartitioningMetadata; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunction; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; @@ -92,6 +92,14 @@ import java.util.concurrent.ConcurrentMap; import static com.facebook.airlift.concurrent.MoreFutures.toListenableFuture; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.metadata.QualifiedObjectName.convertFromSchemaTableName; import static com.facebook.presto.metadata.TableLayout.fromConnectorLayout; import static com.facebook.presto.metadata.ViewDefinition.ViewColumn; @@ -100,14 +108,6 @@ import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.SYNTAX_ERROR; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.transaction.InMemoryTransactionManager.createTestTransactionManager; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java index e625826d9a9f7..26ff715c6db36 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java @@ -14,7 +14,7 @@ package com.facebook.presto.metadata; import com.facebook.presto.Session; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java b/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java index d0539679f466d..028c92808c61c 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.TypeSignature; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java index 48297bf51fe26..fddbd1d06d592 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.PolymorphicScalarFunction.PolymorphicScalarFunctionChoice; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java index 7445b0971b983..2cc846784e920 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; import com.facebook.presto.spi.type.TypeSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java index 45d6bc6564309..3647dc0c046c3 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.TypeVariableConstraint; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java index 3112ab3b2136a..b34faaae41645 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.TypeVariableConstraint; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java index da596d6af1e38..3b7f039a8b4af 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java index aa4a770438cfa..c54853f40bd8f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java @@ -27,7 +27,7 @@ import java.util.Optional; import java.util.OptionalInt; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java index 4d479af727235..94029c32948f2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; @@ -37,14 +37,14 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java index c479a34f63379..f945bc98e1420 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.operator.ParametricImplementation; import com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java index ad72863473afe..3d4a53215e24f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java @@ -33,7 +33,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java index 95bf69b42a8c0..e8f6a873c6bbf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java @@ -32,7 +32,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; @AggregationFunction("approx_distinct") public final class DefaultApproximateCountDistinctAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java index 83fe34257caf5..29d2203510ef0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory; import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateSerializer; import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java index 04deee62f0fa9..ebc210847c7e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateSerializer; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java index f5df7c17990df..588753247a466 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java @@ -21,6 +21,7 @@ import com.facebook.presto.bytecode.Parameter; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; @@ -58,6 +58,8 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantBoolean; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.not; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.or; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -66,8 +68,6 @@ import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.operator.aggregation.minmaxby.TwoNullableValueStateMapping.getStateClass; import static com.facebook.presto.operator.aggregation.minmaxby.TwoNullableValueStateMapping.getStateSerializer; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java index 8da6c9c4d420b..7e344b42db7ce 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.LongVariableConstraint; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; @@ -47,16 +47,16 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.operator.annotations.ImplementationDependency.isImplementationDependencyAnnotation; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java index d185951245280..3d4531d8ddcf2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.InvocationConvention; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java index b2c065453f236..dcf7a430a8a10 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java index 180f466b22aee..d0e9606e7ed59 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java @@ -22,13 +22,13 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java index 8904fd554ceeb..636dbd1139274 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java index 2869fd3c94158..6a0565ff92b5a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java index 7f24d60c52352..c51eb7fdb7586 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java @@ -22,6 +22,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java index 46bbef39c5645..64a5eafc66163 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java @@ -27,8 +27,8 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.util.Failures.internalError; @Description("Determines whether given value exists in the array") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java index 0bfa66c348d42..6eda809cc9a21 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java @@ -27,9 +27,9 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.BLOCK_POSITION; import static com.facebook.presto.spi.function.InvocationConvention.InvocationReturnConvention.FAIL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.util.Failures.internalError; @ScalarOperator(IS_DISTINCT_FROM) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java index 3c6034705ba75..3db0f30d2df15 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java @@ -25,7 +25,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java index d0a6dd3b3b528..28da13ee1a6ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java index d0699023c1486..1f137cf0a7694 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java @@ -24,7 +24,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java index 4789eca177164..02bae99026ac5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java @@ -23,8 +23,8 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java index db0418bbb10a7..4b744f9d6857c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java @@ -25,7 +25,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.NULL_HASH_CODE; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java index 006dec7151b08..cde5415920457 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java @@ -24,7 +24,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java index 69ba30cb7609f..e1f0d64ba3c46 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java index cb78f8d1c5616..5b441cf1c73d7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java @@ -24,7 +24,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java index 3caf67a389a9a..72a741657284f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java @@ -24,8 +24,8 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java index 3ee7c217f3517..189d7e5c5a7bd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java @@ -25,11 +25,11 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.booleanArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.doubleArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.longArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.sliceArrayMinMax; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.util.Failures.internalError; @ScalarFunction("array_max") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java index 69be9b5381e07..4e1dd76b693df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java @@ -25,11 +25,11 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.booleanArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.doubleArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.longArrayMinMax; import static com.facebook.presto.operator.scalar.ArrayMinMaxUtils.sliceArrayMinMax; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.util.Failures.internalError; @ScalarFunction("array_min") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java index 31de3a4cb28fd..fb97be1571aa3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java @@ -24,8 +24,8 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; @ScalarOperator(NOT_EQUAL) public final class ArrayNotEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java index c4011edb3dd46..76dcec40b98bd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java @@ -26,8 +26,8 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.util.Failures.internalError; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java index e820de95a8cd6..9a86dc11e790c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java index 0b662a3da0e5c..dfb0478bf4db1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java @@ -29,8 +29,8 @@ import java.util.ArrayList; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java index 743b797ebd57d..5b94447a115ac 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java @@ -29,9 +29,9 @@ import java.util.Comparator; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; @ScalarFunction("array_sort") @Description("Sorts the given array in ascending order according to the natural ordering of its elements.") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java index 0b192e20ff99b..ecb947325210f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java @@ -26,10 +26,10 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java index 81b5f7936ec18..8d4f79c6268bc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java @@ -45,9 +45,9 @@ import static com.facebook.presto.bytecode.Parameter.arg; import static com.facebook.presto.bytecode.ParameterizedType.type; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantBoolean; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java index 1774939234698..b1d6e97a5ccdc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java index 524beef22b39b..f87a39c18c5e7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java index 5e295ef2d03ef..6615e01e8829e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java @@ -22,6 +22,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java index 942a012a7b0cb..8cc3a2c840562 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java @@ -30,7 +30,7 @@ import java.lang.invoke.MethodHandle; import java.util.Arrays; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.IntegerType.INTEGER; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java index 9468625b1f9ca..058d77642e5e8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java @@ -23,9 +23,9 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java index bd0df5c6a31f9..49522c957b744 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.type.LiteralParameter; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java index 292be0756feb5..f0b8ed09fce6a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java @@ -22,12 +22,12 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java index 6521904e47ea0..23b43b01e97de 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Greatest.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Greatest.java index 3831dec1a9770..72be21d72be22 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Greatest.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Greatest.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java index a8f09bd606175..e6b420c7fea01 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java index 11defe51dd28e..0f58fe65192e7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java index d8277f2cebafd..bbedd26a14eb4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.type.JoniRegexpType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java index fbe13d819dec1..fa8d6899602b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlFunctionProperties; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java index 1bc8752baabe4..f99695c292ef1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java @@ -33,14 +33,14 @@ import java.io.IOException; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.type.StandardTypes.BIGINT; import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; import static com.facebook.presto.spi.type.StandardTypes.DATE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java index 51e097c7eb8ff..fa81f6f72072d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java index b541966322924..28741d1497c47 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java index bffe82659f3db..eff49d1855e85 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java index 74708fac0438c..b551a6f764544 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java index c022aadf382ff..4fb3c5055a579 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.MapType; import com.facebook.presto.spi.type.StandardTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java index 860c20326a225..3e0bb2297430a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.SingleRowBlockWriter; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.RowType; import com.facebook.presto.spi.type.RowType.Field; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Least.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Least.java index 46b3fc48c32a7..e1f0cf6a15e30 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Least.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Least.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java index 0da833fb20682..b04f40468d784 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java index a9d6870e9b8c6..d6ed5810ab202 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java @@ -14,6 +14,8 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -24,8 +26,6 @@ import com.facebook.presto.spi.block.DuplicateMapKeyException; import com.facebook.presto.spi.block.MapBlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; @@ -39,11 +39,11 @@ import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java index 0fce999342e96..101228c3dadda 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java @@ -28,9 +28,9 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.BLOCK_POSITION; import static com.facebook.presto.spi.function.InvocationConvention.InvocationReturnConvention.FAIL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; @ScalarOperator(IS_DISTINCT_FROM) public final class MapDistinctFromOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java index 2785f59bb7eeb..0b41522837416 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java index 8c9e306793645..68cdb952225fc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java @@ -24,8 +24,8 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; @ScalarOperator(EQUAL) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java index fd021f0c41efb..814c8531e8827 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java @@ -23,6 +23,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java index f1cb90c05e9e9..f31e7fc600836 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java @@ -25,9 +25,9 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java index e7c91a28d1517..f482a47b5c33b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java @@ -24,7 +24,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java index 1485ac258b6b6..6075ac3643bfa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java @@ -24,9 +24,9 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; @ScalarOperator(NOT_EQUAL) public final class MapNotEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java index 90e827a9b0957..097cb8601121c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java @@ -32,11 +32,11 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java index 036188bd5e187..6ae7ddf6fce2a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java index 76f402c16c98e..8899cf33519ff 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java @@ -32,13 +32,13 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.block.MethodHandleUtil.compose; import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueWriter; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java index 5ed8d01f98f75..af4fa0bf4b98f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java @@ -23,6 +23,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java index 72fb4762c32b0..cb558e867f24e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java @@ -24,6 +24,7 @@ import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.TryCatch; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java index a4569156f0de3..44bbd53d0786d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java index 165ed3671952a..0c5bf86d7d360 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java @@ -26,10 +26,10 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.type.Chars.padSpaces; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java index 4d3925e2ea094..e0abd2ebaa1de 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java @@ -13,11 +13,11 @@ * limitations under the License. */ +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.RowType; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java index 8660b80a890c6..f703d560370ad 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java @@ -31,11 +31,11 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.BLOCK_AND_POSITION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.NULL_FLAG; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java index f831cd441a0fa..5a50bd4c08842 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java @@ -27,9 +27,9 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java index eb7ed136c3d5e..8385b10686a07 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java @@ -24,9 +24,9 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.util.Reflection.methodHandle; public final class RowGreaterThanOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java index 98abee1cd6843..1879d5409d17b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java @@ -24,10 +24,10 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.util.Reflection.methodHandle; public final class RowGreaterThanOrEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java index d0912af6612a6..f66d5ca7f8cb4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java @@ -26,9 +26,9 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java index 89f7e2f4484b6..f0550ab029abc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java @@ -43,9 +43,9 @@ import static com.facebook.presto.bytecode.ParameterizedType.type; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantFalse; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.function.Signature.withVariadicBound; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java index 532c75e7e1b8f..bf3c540b711ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java @@ -24,9 +24,9 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.util.Reflection.methodHandle; public final class RowLessThanOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java index 2162d4d59958e..abc6945370a80 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java @@ -24,10 +24,10 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.util.Reflection.methodHandle; public final class RowLessThanOrEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java index 06528f94745b3..317fb5cb96a3f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java @@ -26,9 +26,9 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java index 85f8c9359a2fb..045acd45680de 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java index 21ee7503188bb..e33c765ad53fc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java @@ -53,9 +53,9 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantBoolean; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantNull; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.function.Signature.withVariadicBound; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.InvokeFunctionBytecodeExpression.invokeFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java index a11059683aede..79f8291a5ad50 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java index 084d2d0eca417..21bf4bc02ab16 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java index a27ae65e1db39..fea48afcb9c64 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.RowType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java index 114475df98281..0b97108cf2587 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java index 584fbf5c01402..3b7cf854bdc72 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar.annotations; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.UnknownType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ScalarImplementationHeader.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ScalarImplementationHeader.java index 5afb77bd67343..7b6eb2cf0d3cb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ScalarImplementationHeader.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ScalarImplementationHeader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar.annotations; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.operator.scalar.ScalarHeader; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java b/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java index ea4728ed7a433..cd6b9fe7f2c1d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.window; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Description; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java index f312ab2eb72fc..4fae4843c4bc3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; import com.facebook.presto.spi.function.WindowFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/security/AccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/AccessControl.java index f47b6370862a1..84c04d329a843 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/AccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/AccessControl.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.security; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; diff --git a/presto-main/src/main/java/com/facebook/presto/security/AccessControlManager.java b/presto-main/src/main/java/com/facebook/presto/security/AccessControlManager.java index d7ef6401d490b..f3eeaac2c3323 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/AccessControlManager.java +++ b/presto-main/src/main/java/com/facebook/presto/security/AccessControlManager.java @@ -15,8 +15,8 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.stats.CounterStat; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; diff --git a/presto-main/src/main/java/com/facebook/presto/security/AllowAllAccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/AllowAllAccessControl.java index 8211d1813186c..4078147dc049b 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/AllowAllAccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/AllowAllAccessControl.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.security; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; diff --git a/presto-main/src/main/java/com/facebook/presto/security/AllowAllSystemAccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/AllowAllSystemAccessControl.java index 846b4302c6912..54d48e1ce166e 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/AllowAllSystemAccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/AllowAllSystemAccessControl.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.security; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; diff --git a/presto-main/src/main/java/com/facebook/presto/security/DenyAllAccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/DenyAllAccessControl.java index b1f25c53bd76b..3375d29fdca90 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/DenyAllAccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/DenyAllAccessControl.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.security; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; diff --git a/presto-main/src/main/java/com/facebook/presto/security/FileBasedSystemAccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/FileBasedSystemAccessControl.java index 744a8787f5899..1aaaeb942018d 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/FileBasedSystemAccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/FileBasedSystemAccessControl.java @@ -14,8 +14,8 @@ package com.facebook.presto.security; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.plugin.base.security.ForwardingSystemAccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; diff --git a/presto-main/src/main/java/com/facebook/presto/security/ReadOnlySystemAccessControl.java b/presto-main/src/main/java/com/facebook/presto/security/ReadOnlySystemAccessControl.java index 6413657f8818a..4f4761d8a40b5 100644 --- a/presto-main/src/main/java/com/facebook/presto/security/ReadOnlySystemAccessControl.java +++ b/presto-main/src/main/java/com/facebook/presto/security/ReadOnlySystemAccessControl.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.security; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; diff --git a/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java b/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java index 312f8fbdbfd2e..53f1af3c422a2 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java +++ b/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java @@ -80,6 +80,7 @@ public class PluginManager .add("io.airlift.slice.") .add("io.airlift.units.") .add("org.openjdk.jol.") + .add("com.facebook.presto.common") .build(); private static final Logger log = Logger.get(PluginManager.class); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java index f5e588d019d42..e76505e09ebe4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.analyzer; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.type.CharType; import com.facebook.presto.spi.type.DecimalParseResult; @@ -115,9 +115,9 @@ import java.util.Set; import java.util.function.Function; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java index 4823942a0dcbd..8c9e1a2079fcb 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java @@ -15,6 +15,8 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.OperatorNotFoundException; @@ -24,14 +26,12 @@ import com.facebook.presto.security.AccessControl; import com.facebook.presto.security.AllowAllAccessControl; import com.facebook.presto.security.ViewAccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.security.AccessDeniedException; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java index 1a794f69e0e66..02676ce2d7494 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java @@ -46,9 +46,9 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantTrue; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.invokeStatic; import static com.facebook.presto.bytecode.instruction.JumpInstruction.jump; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.BytecodeUtils.ifWasNullPopAndGoto; import static com.facebook.presto.sql.gen.BytecodeUtils.invoke; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java index 62adc995b5010..aefbe0ae02a44 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java @@ -28,6 +28,7 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.JoinHash; @@ -40,7 +41,6 @@ import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.BigintType; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java index 72921aa3353c9..3f91092bcb04a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java @@ -33,8 +33,8 @@ import java.util.Optional; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantTrue; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.BytecodeUtils.ifWasNullPopAndGoto; import static com.facebook.presto.sql.gen.SpecialFormBytecodeGenerator.generateWrite; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java index fde1a4a1ea560..1edc66190c7df 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java @@ -32,7 +32,7 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantFalse; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantTrue; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.WHEN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.SpecialFormBytecodeGenerator.generateWrite; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java index 6402d25b5b29e..30d4095ebb4fc 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java @@ -16,6 +16,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.scalar.ArraySubscriptOperator; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.block.SingleRowBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java index 0a9100dd9dab6..4922bbe21fac6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.operator.scalar.VarbinaryFunctions; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.block.BlockSerdeUtil; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 13e704b1308bb..2852b1401a833 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -16,6 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.ExplainAnalyzeContext; import com.facebook.presto.execution.StageExecutionId; import com.facebook.presto.execution.TaskManagerConfig; @@ -117,8 +119,6 @@ import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java index 1438a4de6f2d3..e4a1e1dc659ab 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java index 7f04c6f189edb..cb941f91ad084 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.RowExpressionNodeInliner; import com.facebook.presto.expressions.RowExpressionTreeRewriter; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; @@ -45,8 +45,8 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java index 659297f779873..1ea4509726b08 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.block.RowBlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; @@ -59,12 +59,12 @@ import java.util.Set; import java.util.stream.Stream; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ARRAY_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_MAP_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ROW_CAST; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.EVALUATED; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.SERIALIZABLE; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java index 1fa379281eacf..8286ceea98d3f 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java @@ -57,9 +57,9 @@ import java.util.function.Function; import java.util.function.Predicate; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/SortExpressionExtractor.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/SortExpressionExtractor.java index 6a754359f0e79..ea7713255584a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/SortExpressionExtractor.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/SortExpressionExtractor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java index c3b76272658ea..97245df5a5019 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.expressions.RowExpressionNodeInliner; import com.facebook.presto.geospatial.KdbTree; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; import com.facebook.presto.spi.plan.PlanNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java index cea7eb10b9701..0640b1d88594a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.matching.Capture; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.Ordering; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ReorderJoins.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ReorderJoins.java index a40b555c96759..5d70b4fa95c00 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ReorderJoins.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ReorderJoins.java @@ -62,10 +62,10 @@ import static com.facebook.presto.SystemSessionProperties.getJoinDistributionType; import static com.facebook.presto.SystemSessionProperties.getJoinReorderingStrategy; import static com.facebook.presto.SystemSessionProperties.getMaxReorderedJoins; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinReorderingStrategy.AUTOMATIC; import static com.facebook.presto.sql.planner.RowExpressionEqualityInference.createEqualityInference; import static com.facebook.presto.sql.planner.iterative.rule.DetermineJoinDistributionType.isBelowMaxBroadcastSize; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java index 2dd01e52e9cdb..7307133c096e6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.Assignments; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java index a3408698a3af3..a36aa687f3d6e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java @@ -14,11 +14,11 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; @@ -46,13 +46,13 @@ import java.util.Map; import java.util.Set; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java index a7c68ae9084b8..22032858aec01 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java @@ -15,9 +15,9 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.MarkDistinctNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java index bfac852b7921c..ddf9e243e0ea2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.optimizations; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.planner.plan.JoinNode; import com.facebook.presto.sql.planner.plan.JoinNode.EquiJoinClause; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java index 0105b1f000516..0728197b89278 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java @@ -15,13 +15,13 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableLayout; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.DiscretePredicates; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.FilterNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java index 73d86aac5a912..6d25a12de4c45 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; @@ -48,8 +48,8 @@ import java.util.stream.Collectors; import static com.facebook.presto.SystemSessionProperties.isOptimizeDistinctAggregationEnabled; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.COALESCE; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java index 1a0c51ac083a1..e60a1647136b6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.metadata.Metadata; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.Subfield.NestedField; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.FilterNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java index a0fd6a079bf88..263e7114d6610 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.expressions.RowExpressionNodeInliner; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; @@ -73,10 +73,10 @@ import java.util.function.Predicate; import java.util.stream.Collectors; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java index 9904ba9563a11..dbdf4e86e67dd 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.type.CharType; import com.facebook.presto.spi.type.Type; @@ -27,22 +27,22 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java index dab593f769126..848c36536bdd2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.predicate.DiscreteValues; import com.facebook.presto.spi.predicate.Domain; @@ -59,20 +59,20 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.or; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java index eeeac390bba7e..2233dd9b944e3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java @@ -90,12 +90,12 @@ import java.util.Optional; import java.util.OptionalInt; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.TRY_CAST; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.BIND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.COALESCE; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java index 6c8887b285ca6..b9641989e4322 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java @@ -14,13 +14,14 @@ package com.facebook.presto.sql.rewrite; import com.facebook.presto.Session; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.metadata.SessionPropertyManager.SessionPropertyValue; import com.facebook.presto.metadata.ViewDefinition; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; import com.facebook.presto.spi.function.SqlInvokedFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingAccessControlManager.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingAccessControlManager.java index f300a59460533..ffe774aa55bfe 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingAccessControlManager.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingAccessControlManager.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AccessControlManager; import com.facebook.presto.security.AllowAllSystemAccessControl; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.transaction.TransactionId; diff --git a/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java index 9195b5d3bacf1..859ee6e8bfc39 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java @@ -30,27 +30,27 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java b/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java index c1bf822e3b4ca..fecf2d7ad3d85 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java @@ -26,17 +26,17 @@ import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java b/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java index 88a582752eaf3..1da51e5f147c1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java @@ -25,17 +25,17 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.Chars.compareChars; public final class CharOperators diff --git a/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java b/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java index 2008888025b98..9b55a4a0a61fe 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java @@ -22,11 +22,11 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.type.ColorType.COLOR; public final class ColorOperators diff --git a/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java index 51e084e5e7103..ac8f68754ea3e 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java @@ -32,19 +32,19 @@ import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; import static com.facebook.presto.spi.type.DateType.DATE; import static com.facebook.presto.util.DateTimeUtils.parseDate; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java index 092db98d329a6..ffedafb9cbcf7 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java @@ -23,9 +23,9 @@ import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; import static com.facebook.presto.spi.type.DateTimeEncoding.updateMillisUtc; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java index 8544f5602ebac..5b161db65d5e0 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java @@ -38,10 +38,10 @@ import java.math.BigDecimal; import java.math.BigInteger; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.operator.scalar.JsonOperators.JSON_FACTORY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.Decimals.bigIntegerTenToNth; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java index 4bfe0d641328e..5173a8170f0d8 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java @@ -14,12 +14,12 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder; import com.facebook.presto.metadata.SignatureBuilder; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; @@ -29,20 +29,20 @@ import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.constant; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.BLOCK_AND_POSITION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compare; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java index 09a0b5cee52cc..81ef027756554 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java @@ -37,18 +37,18 @@ import java.math.BigInteger; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.function.Signature.longVariableExpression; import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; import static com.facebook.presto.spi.type.Decimals.longTenToNth; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java index 0c7fe53645284..1278caaf32813 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java @@ -24,8 +24,8 @@ import java.math.BigDecimal; import java.math.BigInteger; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.Decimals.bigIntegerTenToNth; import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java index 49ed764fec494..04459201a1efc 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java @@ -25,9 +25,9 @@ import java.math.BigInteger; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.CAST; import static com.facebook.presto.spi.function.Signature.withVariadicBound; import static com.facebook.presto.spi.type.Decimals.longTenToNth; import static com.facebook.presto.spi.type.Decimals.overflows; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java index 9bb6c1d1cd042..cbf2bd5244802 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java @@ -31,28 +31,28 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java b/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java index 7040a122880e1..775c0dfdd222e 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java @@ -19,7 +19,7 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.CAST; public final class HyperLogLogOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java index 5592502ce384f..606943a231a39 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java @@ -29,27 +29,27 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java index d56d3e366eecc..f17e7535303e5 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java @@ -26,22 +26,22 @@ import io.airlift.slice.Slice; import static com.facebook.presto.client.IntervalDayTime.formatMillis; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java index 7987b0af919f8..bb885ee859d8e 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java @@ -26,22 +26,22 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java index 4d457354b60c5..cbfab9dcfe7c1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java @@ -30,20 +30,20 @@ import java.net.InetAddress; import java.net.UnknownHostException; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.type.IpAddressType.IPADDRESS; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java index 50066d111353c..52302b22b8b97 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java @@ -30,20 +30,20 @@ import java.net.InetAddress; import java.net.UnknownHostException; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.type.IpAddressType.IPADDRESS; import static com.facebook.presto.type.IpPrefixType.IPPREFIX; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java b/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java index 2e6d3d75ddb25..1965a86bef919 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java index 458d3ff586807..3c5b49fad9e3c 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.type.MapType; import com.facebook.presto.spi.type.ParameterKind; import com.facebook.presto.spi.type.ParametricType; diff --git a/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java index 979d890ddb4fb..1beef2bcd82c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java @@ -18,7 +18,7 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.CAST; public final class QuantileDigestOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java b/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java index 594ee8ac380dc..9d5b0f1296c42 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java @@ -31,26 +31,26 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.RealType.REAL; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java index 87480ee83bfac..133db557f6978 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java @@ -29,27 +29,27 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.SmallintType.SMALLINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java index d29a20af11421..cfca80457904f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java @@ -18,7 +18,7 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.CAST; public final class TDigestOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java index d7c452057f9cb..a39799ac90877 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java @@ -29,20 +29,20 @@ import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; import static com.facebook.presto.spi.type.TimeType.TIME; import static com.facebook.presto.util.DateTimeUtils.parseTimeWithoutTimeZone; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java index 5b029da6bb2ed..3a382e22b7948 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java @@ -32,19 +32,19 @@ import java.time.ZoneOffset; import java.time.temporal.ChronoField; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java index 80f2573ceeec6..1004051dedb7e 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java @@ -32,20 +32,20 @@ import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.facebook.presto.type.DateTimeOperators.modulo24Hour; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java index b48818820af06..f215ab7bd990f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java @@ -32,20 +32,20 @@ import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java index ca557df1a3912..912fdcbc49696 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java @@ -28,26 +28,26 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java b/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java index 634b3537ea201..39838a1ee1bf2 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.CharType; import com.facebook.presto.spi.type.DecimalType; diff --git a/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java b/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java index f50896fa30006..531a686e3147f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java @@ -22,16 +22,16 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; public final class UnknownOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java b/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java index 9c9c305ea624d..13438066fc7c7 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java @@ -24,17 +24,17 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; public final class VarbinaryOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java b/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java index c395834cdb6d2..8963e2320560c 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java @@ -26,19 +26,19 @@ import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.XX_HASH_64; import static java.lang.String.format; public final class VarcharOperators diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java index f1e0546eff4ea..7507c7d1fc369 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java @@ -19,7 +19,7 @@ import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.CAST; public final class KHyperLogLogOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java index 89a341650591b..5321ac3cde921 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java @@ -20,7 +20,7 @@ import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.CAST; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.SizeOf.SIZE_OF_BYTE; import static io.airlift.slice.SizeOf.SIZE_OF_INT; diff --git a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java index bd0b91b99d140..e95bd44520407 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java +++ b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java @@ -29,9 +29,9 @@ import java.util.Collection; import java.util.Set; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.base.Throwables.throwIfInstanceOf; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/util/SpatialJoinUtils.java b/presto-main/src/main/java/com/facebook/presto/util/SpatialJoinUtils.java index a6763fc1ee9a7..5ad4ae2a89468 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/SpatialJoinUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/util/SpatialJoinUtils.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; @@ -30,14 +30,14 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java index d809419b2dc85..7acf69e30f2e0 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.DictionaryBlock; import com.facebook.presto.spi.block.RowBlockBuilder; import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.DecimalType; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java index 1cc23b8d372b0..e711f3b30f040 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java @@ -14,7 +14,7 @@ package com.facebook.presto.metadata; import com.facebook.presto.Session; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java index 986923b5b50d2..bfd15393d0256 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java @@ -15,11 +15,11 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.CustomFunctions; import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; @@ -42,13 +42,13 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.SystemSessionProperties.EXPERIMENTAL_FUNCTIONS_ENABLED; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.function.OperatorType.tryGetOperatorType; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.SATURATED_FLOOR_CAST; -import static com.facebook.presto.spi.function.OperatorType.tryGetOperatorType; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; import static com.facebook.presto.spi.type.BigintType.BIGINT; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java index 13d9c92436387..68a684b9fc5e8 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java @@ -32,14 +32,14 @@ import java.util.Collections; import java.util.Optional; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.metadata.TestPolymorphicScalarFunction.TestMethods.VARCHAR_TO_BIGINT_RETURN_VALUE; import static com.facebook.presto.metadata.TestPolymorphicScalarFunction.TestMethods.VARCHAR_TO_VARCHAR_RETURN_VALUE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.BLOCK_AND_POSITION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java index 2117e81753c2e..a1ea4f9131c10 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java @@ -16,7 +16,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.function.QualifiedFunctionName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.spi.type.Type; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java index b7bbb12577c1d..83b3c651b7947 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java index 2f2ca4328bbc8..63ca495cafb7b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.AggregationImplementation; @@ -44,7 +45,6 @@ import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; @@ -67,10 +67,10 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser.parseFunctionDefinition; import static com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser.parseFunctionDefinitions; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.type.StandardTypes.ARRAY; import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java index 41d065515ac58..97a22efaee2ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.annotations.ImplementationDependency; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlNullable; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java index f8edc70e96364..bad34d6f1845a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java @@ -37,11 +37,11 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java index 816e75e7988af..10f95ccea04d3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java @@ -61,11 +61,11 @@ import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.toValues; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java b/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java index dcd087ab820a2..db38251c2e0ff 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.MapType; import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java index ffa72b6e1b009..35398cb630c0e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java @@ -50,6 +50,7 @@ import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.execution.executor.PrioritizedSplitRunner.SPLIT_RUN_QUANTA; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; @@ -58,7 +59,6 @@ import static com.facebook.presto.operator.project.PageProcessor.MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.operator.project.PageProcessor.MIN_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.operator.project.SelectedPositions.positionsRange; -import static com.facebook.presto.spi.function.OperatorType.ADD; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java index 27408a33ba4da..dc972d5f6a664 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java @@ -29,11 +29,11 @@ import com.facebook.presto.block.BlockAssertions.Encoding; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.operator.SimpleArrayAllocator; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockFlattener; import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.DecimalType; import com.facebook.presto.spi.type.MapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java index ccaa6ba6a1934..2137cd9d19e05 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.BuiltInFunction; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.metadata.Metadata; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.Plugin; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.DecimalParseResult; import com.facebook.presto.spi.type.Decimals; import com.facebook.presto.spi.type.SqlDecimal; @@ -235,7 +235,7 @@ protected static SqlDecimal decimal(String decimalString) protected static SqlDecimal maxPrecisionDecimal(long value) { final String maxPrecisionFormat = "%0" + (Decimals.MAX_PRECISION + (value < 0 ? 1 : 0)) + "d"; - return decimal(String.format(maxPrecisionFormat, value)); + return decimal(format(maxPrecisionFormat, value)); } // this help function should only be used when the map contains null value diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java index 56549638863a8..8d80b9a03e087 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.metadata.FunctionManager; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.relation.CallExpression; @@ -62,12 +62,12 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BenchmarkArrayFilter.ExactArrayFilterFunction.EXACT_ARRAY_FILTER_FUNCTION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; import static com.facebook.presto.spi.type.BigintType.BIGINT; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java index 91c9a2c0fb47d..f2a25cc9d6a88 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java @@ -60,9 +60,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.operator.scalar.CombineHashFunction.getHash; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java index 592883019c808..fbe31efde6054 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java @@ -55,8 +55,8 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java index e01038a78d767..1820410ce7e2c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java @@ -56,8 +56,8 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java index 8079dee332455..274e4a308d19a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java @@ -50,8 +50,8 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java index 323d458d717ab..95516429334df 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java @@ -54,9 +54,9 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java index d527bf26bb568..2c8db86ec1813 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java @@ -53,8 +53,8 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.function.OperatorType.ADD; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java index 24664cea74d8c..108113c8cbc97 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java @@ -54,8 +54,8 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java index 6c22054053844..f4884663e9a33 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java @@ -16,6 +16,7 @@ import io.airlift.slice.Slice; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.operator.scalar.ColorFunctions.bar; import static com.facebook.presto.operator.scalar.ColorFunctions.color; import static com.facebook.presto.operator.scalar.ColorFunctions.getBlue; @@ -24,7 +25,6 @@ import static com.facebook.presto.operator.scalar.ColorFunctions.parseRgb; import static com.facebook.presto.operator.scalar.ColorFunctions.render; import static com.facebook.presto.operator.scalar.ColorFunctions.rgb; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java index 2c7544908a677..2b06fff68f1e9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java @@ -19,7 +19,7 @@ import com.facebook.presto.spi.type.StandardTypes; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.ADD; @SuppressWarnings("UtilityClassWithoutPrivateConstructor") public class TestOperatorValidation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java index 6d20a8d70fb2b..bc254c224ab60 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java @@ -42,10 +42,10 @@ import static com.facebook.presto.block.BlockAssertions.createLongDictionaryBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java index 0e17cbbdc69c3..3d03d8052d98d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java index 40f8289c1fc79..12a718b49849b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java @@ -22,8 +22,8 @@ import java.util.Base64; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/security/TestAccessControlManager.java b/presto-main/src/test/java/com/facebook/presto/security/TestAccessControlManager.java index ab38657870d87..0bc64753e2a43 100644 --- a/presto-main/src/test/java/com/facebook/presto/security/TestAccessControlManager.java +++ b/presto-main/src/test/java/com/facebook/presto/security/TestAccessControlManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.security; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.connector.informationSchema.InformationSchemaConnector; import com.facebook.presto.connector.system.SystemConnector; import com.facebook.presto.metadata.Catalog; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.InMemoryNodeManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; diff --git a/presto-main/src/test/java/com/facebook/presto/security/TestFileBasedSystemAccessControl.java b/presto-main/src/test/java/com/facebook/presto/security/TestFileBasedSystemAccessControl.java index 18d60b57fc27b..fe61d1788420d 100644 --- a/presto-main/src/test/java/com/facebook/presto/security/TestFileBasedSystemAccessControl.java +++ b/presto-main/src/test/java/com/facebook/presto/security/TestFileBasedSystemAccessControl.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.security; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.CatalogSchemaName; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java b/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java index a74d960c62f35..11236f20eef40 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java @@ -19,6 +19,7 @@ import com.facebook.airlift.stats.cardinality.HyperLogLog; import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.block.BlockJsonSerde; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.HandleJsonModule; import com.facebook.presto.metadata.Metadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.block.IntArrayBlock; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.type.ArrayType; @@ -64,7 +64,7 @@ import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.ROW_CONSTRUCTOR; import static com.facebook.presto.spi.type.BigintType.BIGINT; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java index e18853b9eb558..13f81f0019788 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java @@ -45,12 +45,12 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index 695c24d5f1a29..64987fda1973a 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -33,11 +33,11 @@ import java.util.Optional; import java.util.function.Supplier; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java index b001ad923163d..20862fd0baa8f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java @@ -27,11 +27,11 @@ import java.util.Arrays; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java index 612772baddc3a..79647ed73103e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java @@ -14,13 +14,13 @@ package com.facebook.presto.sql.gen; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java index f45cb9724b801..5c556c1ba3a4a 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.sql.planner.assertions.BasePlanTest; import com.facebook.presto.sql.planner.assertions.PlanMatchPattern; import com.facebook.presto.sql.planner.iterative.rule.test.RuleTester; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java index 7872db2fb4735..f895edef65ba8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; @@ -46,14 +46,14 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.or; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.relation.DomainTranslator.BASIC_COLUMN_EXTRACTOR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java index 22ab85dc3bf8f..7d58ccd2d0407 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; @@ -38,9 +38,9 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; import static com.facebook.presto.expressions.LogicalRowExpressions.and; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.RowType.field; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java index 2c03afbc823e6..5dcab374a6023 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java @@ -14,10 +14,10 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; @@ -37,23 +37,23 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.CAST; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBSCRIPT; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java index 455357e917840..62dadca7a66a2 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.FilterNode; import com.facebook.presto.spi.plan.LimitNode; @@ -64,14 +64,14 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.or; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.spi.plan.AggregationNode.globalAggregation; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java index bf33c7eeb9f12..d77449530fb21 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java @@ -28,9 +28,9 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java index 41e105f3d31e5..b536689644407 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/RowExpressionVerifier.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/RowExpressionVerifier.java index c174fe18a7994..0b2e1dc034a18 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/RowExpressionVerifier.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/RowExpressionVerifier.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; @@ -56,18 +56,18 @@ import java.util.Optional; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.MODULUS; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.MODULUS; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.COALESCE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java index ab6b738412b7d..5b9b7b58c62ca 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java @@ -14,7 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.ValuesNode; import com.facebook.presto.spi.relation.DeterminismEvaluator; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java index dce2704f55139..121777e004537 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java @@ -22,7 +22,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.exchange; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java index 2c8152b9dfb70..684cb26afaf39 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.cost.CostComparator; import com.facebook.presto.cost.PlanNodeStatsEstimate; import com.facebook.presto.cost.VariableStatsEstimate; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType; @@ -40,9 +40,9 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.JOIN_MAX_BROADCAST_TABLE_SIZE; import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.AUTOMATIC; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java index 5a7f40d8194c7..dd876bb564754 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.relation.CallExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java index a258f3ce513fc..2d05f001171b6 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule.test; import com.facebook.presto.Session; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.IndexHandle; import com.facebook.presto.metadata.Metadata; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.AggregationNode.Step; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java index 425628bdfccc8..47bfa9e2e953f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java @@ -54,7 +54,7 @@ import java.util.Optional; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.castToRowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java index 6d6a2fdf18ce2..6c49a1f864484 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java @@ -20,8 +20,8 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java index 4688e519d1a35..8cf05dd30d961 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java @@ -23,8 +23,8 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java index 3e96f30548d3b..a3ef6f91c2329 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; @@ -31,15 +31,15 @@ import java.util.stream.IntStream; import java.util.stream.Stream; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractPredicates; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java index 52fff7abea6f0..a06af7d883c63 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java @@ -34,12 +34,12 @@ import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.presto.block.BlockAssertions.toValues; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ARRAY_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_MAP_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ROW_CAST; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IF; import static com.facebook.presto.spi.type.BigintType.BIGINT; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java index 00191d0166d53..88e65d0390ebe 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.translator.FunctionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTreeTranslator; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java index cc0259a1d6b56..11db61efdba8a 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.type.FunctionType; @@ -24,8 +24,8 @@ import org.testng.annotations.Test; import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; +import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.function.OperatorType.ADD; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.BIND; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java index 001e89b98b013..462efcdc7e70d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java @@ -32,11 +32,11 @@ import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.function.OperatorType.ADD; -import static com.facebook.presto.spi.function.OperatorType.DIVIDE; -import static com.facebook.presto.spi.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.function.OperatorType.NEGATION; -import static com.facebook.presto.spi.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.function.OperatorType.DIVIDE; +import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.function.OperatorType.NEGATION; +import static com.facebook.presto.common.function.OperatorType.SUBTRACT; @State(Scope.Thread) @Fork(2) diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java index 7780ffedb996b..b92915b5559c5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java @@ -49,14 +49,14 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.operator.aggregation.TypedSet.MAX_FUNCTION_MEMORY; import static com.facebook.presto.spi.StandardErrorCode.EXCEEDED_FUNCTION_MEMORY_LIMIT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.block.BlockSerdeUtil.writeBlock; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java index a9c779b81b0d8..10686a070328e 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java index fb83b91dca625..b15885936e7bf 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java index 075dbab5079d6..28af471b78790 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; public class TestCharOperators diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java index 67212fb114393..058611bbce875 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java @@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java index 4be89a0d43a7e..d60cbafa7672b 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java @@ -16,9 +16,9 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DecimalType.createDecimalType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java index 0b73f7f9ea458..6262d33e6b085 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java @@ -16,8 +16,8 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java index 1967cd4a4905a..778568964cd50 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java @@ -16,9 +16,9 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java index 9c500035f2419..7064588ed8021 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java @@ -17,7 +17,7 @@ import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java index 91c8ea412a1b8..295bfdd0aeb6d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java @@ -17,7 +17,7 @@ import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java index ec0d26392bbfb..c4612f9273f61 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java @@ -21,8 +21,8 @@ import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java index 5c8d635886dbd..a96294f41c5fb 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java @@ -20,8 +20,8 @@ import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java index 3b5fb8826c66c..db9515d3256c8 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java @@ -27,8 +27,8 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DecimalType.createDecimalType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java index abfb1c8d373b2..ebac8a5e20a06 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java @@ -37,8 +37,8 @@ import java.util.Map; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DecimalType.createDecimalType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java index 5cc95f397e049..eeab2ad93917b 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java index e3112f847b918..b500183ac7e7d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java @@ -43,8 +43,8 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.SystemSessionProperties.LEGACY_ROW_FIELD_ORDINAL_ACCESS; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DecimalType.createDecimalType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java index 6e9a172ac9c13..bf8e8f8be6821 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java @@ -16,8 +16,8 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java index 036ca96ba7e6e..d5c8ae5e3d81c 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java @@ -25,7 +25,7 @@ import org.joda.time.DateTimeZone; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.TimeType.TIME; import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java index a407fe7fd8ac8..f2e4986387f90 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java @@ -21,7 +21,7 @@ import org.joda.time.DateTimeZone; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java index cf4634ab669cc..1a07e1806add6 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; import static com.facebook.presto.spi.type.TimeType.TIME; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java index f99e50629e08f..494d01b5ebd95 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java @@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DateType.DATE; import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java index 5ce6ec257cfdb..b46659f439444 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java @@ -16,8 +16,8 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java b/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java index 4fafcc8631f1e..140fe33325de7 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java @@ -26,15 +26,15 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.metadata.CastType.CAST; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.CharType.createCharType; import static com.facebook.presto.spi.type.DateType.DATE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java index 84c78564eb7b2..0afdb638ab53f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java @@ -20,7 +20,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java index 6d32923b5a321..93157f545d599 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.type.VarcharType.createVarcharType; diff --git a/presto-memory/pom.xml b/presto-memory/pom.xml index 33f544d81010b..f954218805885 100644 --- a/presto-memory/pom.xml +++ b/presto-memory/pom.xml @@ -65,6 +65,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-ml/pom.xml b/presto-ml/pom.xml index 2cbba25a140f3..6328ab597e5d0 100644 --- a/presto-ml/pom.xml +++ b/presto-ml/pom.xml @@ -63,6 +63,12 @@ provided + + com.facebook.presto + presto-common + provided + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-mongodb/pom.xml b/presto-mongodb/pom.xml index 6fa9de509332f..3b7974768d5f4 100644 --- a/presto-mongodb/pom.xml +++ b/presto-mongodb/pom.xml @@ -98,6 +98,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java index f9ba5020ebb57..84c3cd580c9aa 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java @@ -24,14 +24,14 @@ import io.airlift.slice.Slices; import org.bson.types.ObjectId; -import static com.facebook.presto.spi.function.OperatorType.BETWEEN; -import static com.facebook.presto.spi.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.function.OperatorType.BETWEEN; +import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; public class ObjectIdFunctions { diff --git a/presto-mysql/pom.xml b/presto-mysql/pom.xml index 14d5470e809ee..8fd9eaf09e909 100644 --- a/presto-mysql/pom.xml +++ b/presto-mysql/pom.xml @@ -59,6 +59,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-orc/pom.xml b/presto-orc/pom.xml index 75123de9cce40..68d493b0525e9 100644 --- a/presto-orc/pom.xml +++ b/presto-orc/pom.xml @@ -82,6 +82,11 @@ presto-spi + + com.facebook.presto + presto-common + + org.openjdk.jol jol-core diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java index d8028c0c9da2d..9b9ce860d3d4a 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java @@ -14,10 +14,10 @@ package com.facebook.presto.orc; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.MapType; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-password-authenticators/pom.xml b/presto-password-authenticators/pom.xml index 6703e469a5478..6d72906548999 100644 --- a/presto-password-authenticators/pom.xml +++ b/presto-password-authenticators/pom.xml @@ -59,6 +59,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-pinot-toolkit/pom.xml b/presto-pinot-toolkit/pom.xml index 3b6a34c98c9bc..33781d7d97729 100644 --- a/presto-pinot-toolkit/pom.xml +++ b/presto-pinot-toolkit/pom.xml @@ -92,6 +92,12 @@ provided + + com.facebook.presto + presto-common + provided + + org.openjdk.jol jol-core diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java index 308b028ba3553..fdad2c6015197 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.pinot.query; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.PinotSessionProperties; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionMetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java index 736521dc30c87..8905ddd0da126 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.pinot.query; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Origin; import com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Selection; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionMetadataManager; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-pinot/pom.xml b/presto-pinot/pom.xml index 13e3376f22f4f..e70f85bb9e4fe 100644 --- a/presto-pinot/pom.xml +++ b/presto-pinot/pom.xml @@ -36,6 +36,12 @@ provided + + com.facebook.presto + presto-common + provided + + org.openjdk.jol jol-core diff --git a/presto-plugin-toolkit/pom.xml b/presto-plugin-toolkit/pom.xml index be0fa37aafd03..b7bac752b5717 100644 --- a/presto-plugin-toolkit/pom.xml +++ b/presto-plugin-toolkit/pom.xml @@ -68,6 +68,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-plugin-toolkit/src/main/java/com/facebook/presto/plugin/base/security/ForwardingSystemAccessControl.java b/presto-plugin-toolkit/src/main/java/com/facebook/presto/plugin/base/security/ForwardingSystemAccessControl.java index 8bd53c4788203..71719dd2c51a1 100644 --- a/presto-plugin-toolkit/src/main/java/com/facebook/presto/plugin/base/security/ForwardingSystemAccessControl.java +++ b/presto-plugin-toolkit/src/main/java/com/facebook/presto/plugin/base/security/ForwardingSystemAccessControl.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.plugin.base.security; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.AccessControlContext; diff --git a/presto-postgresql/pom.xml b/presto-postgresql/pom.xml index eec59b94b0465..2358e2b71a971 100644 --- a/presto-postgresql/pom.xml +++ b/presto-postgresql/pom.xml @@ -54,6 +54,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-raptor/pom.xml b/presto-raptor/pom.xml index a8127c88382bd..31df3f8878b14 100644 --- a/presto-raptor/pom.xml +++ b/presto-raptor/pom.xml @@ -183,6 +183,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-redis/pom.xml b/presto-redis/pom.xml index c37bc57ec6977..d366bbe61302d 100644 --- a/presto-redis/pom.xml +++ b/presto-redis/pom.xml @@ -100,6 +100,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-redshift/pom.xml b/presto-redshift/pom.xml index dd4dbcd5dbdf0..c0f8563cd43fd 100644 --- a/presto-redshift/pom.xml +++ b/presto-redshift/pom.xml @@ -56,6 +56,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-resource-group-managers/pom.xml b/presto-resource-group-managers/pom.xml index 7fb12bd07f91c..ed1c2095978ad 100644 --- a/presto-resource-group-managers/pom.xml +++ b/presto-resource-group-managers/pom.xml @@ -115,6 +115,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-session-property-managers/pom.xml b/presto-session-property-managers/pom.xml index 549de3fe115c0..6b0d2fdc2ff91 100644 --- a/presto-session-property-managers/pom.xml +++ b/presto-session-property-managers/pom.xml @@ -69,6 +69,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift units diff --git a/presto-spi/pom.xml b/presto-spi/pom.xml index 4728bab333e04..045d95f60264d 100644 --- a/presto-spi/pom.xml +++ b/presto-spi/pom.xml @@ -17,6 +17,11 @@ + + com.facebook.presto + presto-common + + io.airlift slice diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java b/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java index 10349490edf54..9a7c21931852e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java @@ -14,8 +14,8 @@ package com.facebook.presto.spi.block; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.block.AbstractMapBlock.HashTables; -import com.facebook.presto.spi.function.OperatorType; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.spi.type.TypeSerde; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionHandle.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionHandle.java index 600cc20e08f29..dfb9deeeab82b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionHandle.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionHandle.java @@ -13,14 +13,12 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.CatalogSchemaName; -import com.facebook.presto.spi.api.Experimental; +import com.facebook.presto.common.CatalogSchemaName; /** * FunctionHandle is a unique handle to identify the function implementation from namespaces. * However, currently it is still under changes, so please don't assume it is backward compatible. */ -@Experimental public interface FunctionHandle { CatalogSchemaName getFunctionNamespace(); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java index a9f7b3460d4ab..e2aa43c3ea5f9 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.type.TypeSignature; import java.util.ArrayList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java index 28a03277d5fc6..ac7fda4c7025a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.api.Experimental; import com.facebook.presto.spi.type.TypeSignature; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorDependency.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorDependency.java index 1d034a79211b5..81a1dec06c5f4 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorDependency.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/OperatorDependency.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.OperatorType; + import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/ScalarOperator.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/ScalarOperator.java index a378368f15d87..96c5958b10701 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/ScalarOperator.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/ScalarOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.OperatorType; + import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java index 8564b2bd44f32..d332071c2e268 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionHandle.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionHandle.java index e7e26b1627779..fb848a411a7ea 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionHandle.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionHandle.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.api.Experimental; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java index dd52fc7ab2774..4d8a41594f7e9 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.api.Experimental; import com.facebook.presto.spi.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java index 7693c8afe1eae..869624a50e6d1 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.spi.api.Experimental; import com.facebook.presto.spi.type.TypeSignature; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java index 06598c3be1bb7..64ce78a63a77e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.function; +import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/security/SystemAccessControl.java b/presto-spi/src/main/java/com/facebook/presto/spi/security/SystemAccessControl.java index df8b6d1bd5db7..7689a7d24cf3b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/security/SystemAccessControl.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/security/SystemAccessControl.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.security; -import com.facebook.presto.spi.CatalogSchemaName; +import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.spi.CatalogSchemaTableName; import com.facebook.presto.spi.SchemaTableName; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java b/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java index 103c43c987a91..8f4373a967381 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.type; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import java.lang.invoke.MethodHandle; import java.util.Collection; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java b/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java index 0dee5926b1dd9..11658a8b6f65a 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.type; -import com.facebook.presto.spi.function.OperatorType; +import com.facebook.presto.common.function.OperatorType; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-sqlserver/pom.xml b/presto-sqlserver/pom.xml index 4af305bffccb9..10c50cc63ae1e 100644 --- a/presto-sqlserver/pom.xml +++ b/presto-sqlserver/pom.xml @@ -70,6 +70,12 @@ provided + + com.facebook.presto + presto-common + provided + + org.testng diff --git a/presto-teradata-functions/pom.xml b/presto-teradata-functions/pom.xml index 4bbd8314b596a..905d8b03692c1 100644 --- a/presto-teradata-functions/pom.xml +++ b/presto-teradata-functions/pom.xml @@ -49,6 +49,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index b2f2af474c5e7..df8145442e360 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -42,6 +42,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto presto-tpch diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java b/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java index 66f26874cbd11..a1d0aa6852475 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.tests; +import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.function.QualifiedFunctionName; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.type.TypeManager; diff --git a/presto-thrift-connector/pom.xml b/presto-thrift-connector/pom.xml index 5386b8d0ec303..da1199543a269 100644 --- a/presto-thrift-connector/pom.xml +++ b/presto-thrift-connector/pom.xml @@ -117,6 +117,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-tpcds/pom.xml b/presto-tpcds/pom.xml index f2e5511f05c76..aa8b37918f1db 100644 --- a/presto-tpcds/pom.xml +++ b/presto-tpcds/pom.xml @@ -59,6 +59,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-tpch/pom.xml b/presto-tpch/pom.xml index 211f9ad78a3a0..a31d0360d74bd 100644 --- a/presto-tpch/pom.xml +++ b/presto-tpch/pom.xml @@ -33,6 +33,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-verifier/pom.xml b/presto-verifier/pom.xml index ea006ada9e8dd..b9f1487cf2d25 100644 --- a/presto-verifier/pom.xml +++ b/presto-verifier/pom.xml @@ -64,7 +64,7 @@ com.facebook.presto presto-spi - + com.facebook.presto presto-thrift-connector From e5710cddd85d70f739c4877f692b73cae1a61aa0 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:46:01 -0700 Subject: [PATCH 068/129] Move Subfield to presto-common --- presto-common/pom.xml | 19 +++++++++++++++++++ .../com/facebook/presto/common}/Subfield.java | 2 +- .../presto/common}/SubfieldTokenizer.java | 7 +++---- .../presto/common}/TestSubfieldTokenizer.java | 8 ++++---- .../com/facebook/presto/hive/HiveCoercer.java | 2 +- .../presto/hive/HiveColumnHandle.java | 2 +- .../facebook/presto/hive/HiveMetadata.java | 2 +- .../presto/hive/HivePageSourceProvider.java | 2 +- .../hive/HiveSelectivePageSourceFactory.java | 2 +- .../presto/hive/HiveSplitManager.java | 2 +- .../presto/hive/HiveTableLayoutHandle.java | 2 +- .../presto/hive/SubfieldExtractor.java | 2 +- .../orc/DwrfSelectivePageSourceFactory.java | 2 +- .../orc/OrcSelectivePageSourceFactory.java | 2 +- .../parquet/ParquetPageSourceFactory.java | 2 +- .../presto/hive/rule/HiveFilterPushdown.java | 2 +- .../presto/hive/AbstractTestHiveClient.java | 2 +- .../presto/hive/TestCoercingFilters.java | 2 +- .../presto/hive/TestDomainTranslator.java | 2 +- .../presto/hive/TestHiveLogicalPlanner.java | 2 +- .../presto/hive/TestSubfieldExtractor.java | 2 +- .../optimizations/PushdownSubfields.java | 6 +++--- .../presto/orc/AbstractOrcRecordReader.java | 2 +- .../com/facebook/presto/orc/OrcReader.java | 2 +- .../presto/orc/OrcSelectiveRecordReader.java | 2 +- .../com/facebook/presto/orc/StripeReader.java | 2 +- .../presto/orc/reader/HierarchicalFilter.java | 2 +- .../presto/orc/reader/ListFilter.java | 2 +- .../orc/reader/ListSelectiveStreamReader.java | 2 +- .../MapDirectSelectiveStreamReader.java | 2 +- .../reader/MapFlatSelectiveStreamReader.java | 2 +- .../orc/reader/MapSelectiveStreamReader.java | 2 +- .../orc/reader/SelectiveStreamReaders.java | 2 +- .../reader/StructSelectiveStreamReader.java | 2 +- .../orc/BenchmarkSelectiveStreamReaders.java | 2 +- .../com/facebook/presto/orc/OrcTester.java | 2 +- .../facebook/presto/orc/TestListFilter.java | 2 +- .../orc/TestMapFlatSelectiveStreamReader.java | 2 +- .../presto/orc/TestSelectiveOrcReader.java | 2 +- presto-parquet/pom.xml | 5 +++++ .../presto/parquet/ParquetTypeUtils.java | 6 +++--- .../com/facebook/presto/spi/ColumnHandle.java | 1 + 42 files changed, 73 insertions(+), 49 deletions(-) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/Subfield.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/SubfieldTokenizer.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/TestSubfieldTokenizer.java (94%) diff --git a/presto-common/pom.xml b/presto-common/pom.xml index 861ea1328e2d5..78ad72bddfd90 100644 --- a/presto-common/pom.xml +++ b/presto-common/pom.xml @@ -20,5 +20,24 @@ com.fasterxml.jackson.core jackson-annotations + + + + org.testng + testng + test + + + + com.google.guava + guava + test + + + + org.assertj + assertj-core + test + diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/Subfield.java b/presto-common/src/main/java/com/facebook/presto/common/Subfield.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/Subfield.java rename to presto-common/src/main/java/com/facebook/presto/common/Subfield.java index ed2d606bc1d42..0d6f4bddfb690 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/Subfield.java +++ b/presto-common/src/main/java/com/facebook/presto/common/Subfield.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/SubfieldTokenizer.java b/presto-common/src/main/java/com/facebook/presto/common/SubfieldTokenizer.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/SubfieldTokenizer.java rename to presto-common/src/main/java/com/facebook/presto/common/SubfieldTokenizer.java index 553904fcb1479..8f835836f9f19 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/SubfieldTokenizer.java +++ b/presto-common/src/main/java/com/facebook/presto/common/SubfieldTokenizer.java @@ -11,12 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; import java.util.Iterator; import java.util.NoSuchElementException; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static java.lang.Character.isLetterOrDigit; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -257,9 +256,9 @@ private char peekCharacter() return path.charAt(index); } - private PrestoException invalidSubfieldPath() + private InvalidFunctionArgumentException invalidSubfieldPath() { - return new PrestoException(INVALID_FUNCTION_ARGUMENT, format("Invalid subfield path: '%s'", this)); + return new InvalidFunctionArgumentException(format("Invalid subfield path: '%s'", this)); } @Override diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/TestSubfieldTokenizer.java b/presto-common/src/test/java/com/facebook/presto/common/TestSubfieldTokenizer.java similarity index 94% rename from presto-spi/src/test/java/com/facebook/presto/spi/TestSubfieldTokenizer.java rename to presto-common/src/test/java/com/facebook/presto/common/TestSubfieldTokenizer.java index d7c8216ec28af..e694c4dc0d88c 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/TestSubfieldTokenizer.java +++ b/presto-common/src/test/java/com/facebook/presto/common/TestSubfieldTokenizer.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; -import com.facebook.presto.spi.Subfield.NestedField; -import com.facebook.presto.spi.Subfield.PathElement; +import com.facebook.presto.common.Subfield.NestedField; +import com.facebook.presto.common.Subfield.PathElement; import com.google.common.collect.ImmutableList; import com.google.common.collect.Streams; import org.testng.annotations.Test; @@ -95,7 +95,7 @@ private void assertInvalidPath(String path) Streams.stream(tokenizer).collect(toImmutableList()); fail("Expected failure"); } - catch (PrestoException e) { + catch (InvalidFunctionArgumentException e) { // this is expected assertTrue(e.getMessage().startsWith("Invalid subfield path: ")); } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java index 764de6c2bf41d..e954c94a60f0f 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.ArrayBlock; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java index 87e430e3305d1..33bcb57cdceff 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.spi.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index dc93a0e0f2e36..256eaa41ba2b0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.LocationService.WriteInfo; import com.facebook.presto.hive.PartitionUpdate.FileWriteInfo; @@ -55,7 +56,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.ViewNotFoundException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java index c226b49dc5d80..0ff76c2014ad7 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveSplit.BucketConversion; import com.facebook.presto.hive.metastore.Column; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SplitContext; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java index 760213175c933..0b803aa8d7491 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import org.apache.hadoop.conf.Configuration; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java index bc0e86c54e5b6..21432395e903c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java @@ -15,6 +15,7 @@ import com.facebook.airlift.concurrent.BoundedExecutor; import com.facebook.airlift.stats.CounterStat; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Partition; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.FixedSplitSource; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java index d10e7ffc26ac0..6193b6b3bc358 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java index 6e23cfdbafe14..64318d983221e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java index cd7189811b510..72e496cbf0768 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.orc; import com.facebook.hive.orc.OrcSerde; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.BucketAdaptation; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java index 7bfadf37d0e13..2775b12cfb140 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.hive.BucketAdaptation; import com.facebook.presto.hive.FileFormatDataSourceStats; @@ -44,7 +45,6 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.predicate.TupleDomain; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index ab1cbc23bdcf4..c4f87e054f5a3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.parquet; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.type.RowType; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java index 97802a46883b9..cc9a0bdfb01b3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.rule; +import com.facebook.presto.common.Subfield; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.hive.HiveBucketHandle; @@ -38,7 +39,6 @@ import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.VariableAllocator; import com.facebook.presto.spi.connector.ConnectorMetadata; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index 2630bbc8175a7..acaa48622deb5 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -17,6 +17,7 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.stats.CounterStat; import com.facebook.presto.GroupByHashPageIndexerFactory; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.LocationService.WriteInfo; import com.facebook.presto.hive.authentication.NoHdfsAuthentication; @@ -70,7 +71,6 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.ViewNotFoundException; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java index 1f4db0122256c..6e29188febf88 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.hive.HiveCoercer.IntegerNumberToVarcharCoercer; import com.facebook.presto.hive.HiveCoercer.VarcharToIntegerNumberCoercer; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BytesRange; -import com.facebook.presto.spi.Subfield; import org.testng.annotations.Test; import static com.facebook.presto.spi.type.IntegerType.INTEGER; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java index 17e5912bf55d7..48cbd59234bf0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java index 61ad210c55901..8c0c0f655cc79 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java @@ -14,12 +14,12 @@ package com.facebook.presto.hive; import com.facebook.presto.Session; +import com.facebook.presto.common.Subfield; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.predicate.Domain; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java index d285f6393fc37..dcdd5621399b5 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.TestingSession; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java index e60a1647136b6..41b6e0f70e818 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java @@ -14,14 +14,14 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.Subfield.NestedField; import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Subfield; -import com.facebook.presto.spi.Subfield.NestedField; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.AggregationNode; @@ -76,8 +76,8 @@ import static com.facebook.presto.SystemSessionProperties.isLegacyUnnest; import static com.facebook.presto.SystemSessionProperties.isPushdownSubfieldsEnabled; +import static com.facebook.presto.common.Subfield.allSubscripts; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.Subfield.allSubscripts; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java index 40ecabc27f1e3..9b3bcf972dda6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.MetadataReader; import com.facebook.presto.orc.metadata.OrcType; @@ -23,7 +24,6 @@ import com.facebook.presto.orc.reader.StreamReader; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.type.FixedWidthType; import com.facebook.presto.spi.type.Type; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java index 9ac25702fdcfa..0f62aca9d54a2 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.cache.OrcFileTailSource; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; @@ -22,7 +23,6 @@ import com.facebook.presto.orc.metadata.OrcFileTail; import com.facebook.presto.orc.metadata.PostScript.HiveWriterVersion; import com.facebook.presto.orc.stream.OrcInputStream; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java index 78b9d9767876a..8c802b3b76c68 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.TupleDomainFilter.BigintMultiRange; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BigintValuesUsingBitmask; @@ -25,7 +26,6 @@ import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.orc.reader.SelectiveStreamReader; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockLease; import com.facebook.presto.spi.block.LazyBlock; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/StripeReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/StripeReader.java index 1f2003ec4f19f..c821b2feb4913 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/StripeReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/StripeReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.checkpoint.InvalidCheckpointException; import com.facebook.presto.orc.checkpoint.StreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -35,7 +36,6 @@ import com.facebook.presto.orc.stream.ValueInputStream; import com.facebook.presto.orc.stream.ValueInputStreamSource; import com.facebook.presto.orc.stream.ValueStreams; -import com.facebook.presto.spi.Subfield; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/HierarchicalFilter.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/HierarchicalFilter.java index d4b87a6425a20..7eabda2f5a9ec 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/HierarchicalFilter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/HierarchicalFilter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.TupleDomainFilter.NullsFilter; import com.facebook.presto.orc.TupleDomainFilter.PositionalFilter; -import com.facebook.presto.spi.Subfield; import java.util.Map; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListFilter.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListFilter.java index 913a86cabf6d6..515c38f6c1076 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListFilter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListFilter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.TupleDomainFilter.NullsFilter; import com.facebook.presto.orc.TupleDomainFilter.PositionalFilter; -import com.facebook.presto.spi.Subfield; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java index 049dddc5c7948..6193b2ba2a6c6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -24,7 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.ArrayBlock; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockLease; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java index 9750e7d71ac91..e45d517372a51 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -26,7 +27,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockLease; import com.facebook.presto.spi.block.ClosingBlockLease; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java index d4aa0382409b2..f83c8bc0190d6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -23,7 +24,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.block.BlockLease; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java index 8f58264ef118c..fa787d4c9846f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockLease; import com.facebook.presto.spi.type.Type; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java index cd12dcd2f1a17..f4fbe1fadaea3 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.OrcType.OrcTypeKind; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.BigintType; import com.facebook.presto.spi.type.BooleanType; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java index 97036026b1276..48f51b514c1ca 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -21,7 +22,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockLease; import com.facebook.presto.spi.block.ClosingBlockLease; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java index 47c97601a1f05..48f38f0a6e669 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BooleanValue; import com.facebook.presto.orc.TupleDomainFilter.BytesRange; @@ -20,7 +21,6 @@ import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.type.DecimalType; import com.facebook.presto.spi.type.Decimals; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java index 03171fd43d9e2..192ffddcfe50e 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java @@ -16,6 +16,7 @@ import com.facebook.hive.orc.OrcConf; import com.facebook.hive.orc.lazy.OrcLazyObject; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Subfield; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.TrackingTupleDomainFilter.TestBigintRange; import com.facebook.presto.orc.TrackingTupleDomainFilter.TestDoubleRange; @@ -25,7 +26,6 @@ import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.type.ArrayType; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestListFilter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestListFilter.java index 053022d9095b8..9cf8d1620eb7d 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestListFilter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestListFilter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.PositionalFilter; import com.facebook.presto.orc.metadata.OrcType; import com.facebook.presto.orc.reader.ListFilter; -import com.facebook.presto.spi.Subfield; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java index c3d66b1e02b7b..055c2f561d9c1 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java @@ -14,8 +14,8 @@ package com.facebook.presto.orc; import com.facebook.presto.Session; +import com.facebook.presto.common.Subfield; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.Predicate; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java index 0546de64f54c0..362065220f8d5 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Subfield; import com.facebook.presto.orc.OrcTester.OrcReaderSettings; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BigintValuesUsingHashTable; @@ -22,7 +23,6 @@ import com.facebook.presto.orc.TupleDomainFilter.DoubleRange; import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.Subfield; import com.facebook.presto.spi.type.CharType; import com.facebook.presto.spi.type.DecimalType; import com.facebook.presto.spi.type.SqlDate; diff --git a/presto-parquet/pom.xml b/presto-parquet/pom.xml index 84518aa9bd4ba..f3776226e65b6 100644 --- a/presto-parquet/pom.xml +++ b/presto-parquet/pom.xml @@ -141,6 +141,11 @@ presto-spi + + com.facebook.presto + presto-common + + io.airlift slice diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java index a8931b6164220..7939e755d8f6f 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.parquet; -import com.facebook.presto.spi.Subfield; -import com.facebook.presto.spi.Subfield.PathElement; +import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.Subfield.PathElement; import com.facebook.presto.spi.type.DecimalType; import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; @@ -37,7 +37,7 @@ import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.Subfield.NestedField; +import static com.facebook.presto.common.Subfield.NestedField; import static com.google.common.base.Preconditions.checkArgument; import static org.apache.parquet.schema.OriginalType.DECIMAL; import static org.apache.parquet.schema.Type.Repetition.REPEATED; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ColumnHandle.java b/presto-spi/src/main/java/com/facebook/presto/spi/ColumnHandle.java index f2daa592ba28e..7a57862d41b3b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ColumnHandle.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ColumnHandle.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Subfield; import com.facebook.presto.spi.api.Experimental; import java.util.List; From 04138bc26a4fc801630fe936463d89d071d00c0a Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:46:05 -0700 Subject: [PATCH 069/129] Move Type,Block,SqlFunctionProperties to presto-common --- pom.xml | 7 ++ .../presto/accumulo/AccumuloModule.java | 6 +- .../com/facebook/presto/accumulo/Types.java | 4 +- .../conf/AccumuloSessionProperties.java | 2 +- .../conf/AccumuloTableProperties.java | 2 +- .../presto/accumulo/index/Indexer.java | 2 +- .../presto/accumulo/io/AccumuloPageSink.java | 28 ++--- .../accumulo/io/AccumuloRecordCursor.java | 26 ++--- .../presto/accumulo/io/AccumuloRecordSet.java | 2 +- .../metadata/ZooKeeperMetadataManager.java | 4 +- .../accumulo/model/AccumuloColumnHandle.java | 2 +- .../facebook/presto/accumulo/model/Field.java | 32 +++--- .../facebook/presto/accumulo/model/Row.java | 26 ++--- .../presto/accumulo/model/RowSchema.java | 2 +- .../serializers/AccumuloRowSerializer.java | 14 +-- .../serializers/LexicoderRowSerializer.java | 32 +++--- .../serializers/StringRowSerializer.java | 28 ++--- .../accumulo/udf/AccumuloStringFunctions.java | 2 +- .../presto/accumulo/AccumuloQueryRunner.java | 2 +- .../presto/accumulo/TestAccumuloClient.java | 2 +- .../presto/accumulo/index/TestIndexer.java | 8 +- .../presto/accumulo/model/TestField.java | 36 +++--- .../presto/accumulo/model/TestRow.java | 26 ++--- .../AbstractTestAccumuloRowSerializer.java | 34 +++--- presto-array/pom.xml | 2 +- .../com/facebook/presto/array/Arrays.java | 2 +- .../facebook/presto/array/BlockBigArray.java | 2 +- .../presto/array/ReferenceCountMap.java | 4 +- .../presto/array/TestBlockBigArray.java | 6 +- .../facebook/presto/atop/AtopMetadata.java | 4 +- .../com/facebook/presto/atop/AtopModule.java | 2 +- .../facebook/presto/atop/AtopPageSource.java | 2 +- .../presto/atop/AtopPageSourceProvider.java | 4 +- .../presto/atop/AtopSplitManager.java | 2 +- .../com/facebook/presto/atop/AtopTable.java | 20 ++-- .../presto/atop/LocalAtopQueryRunner.java | 2 +- .../presto/plugin/jdbc/BaseJdbcClient.java | 36 +++--- .../presto/plugin/jdbc/JdbcColumnHandle.java | 2 +- .../plugin/jdbc/JdbcOutputTableHandle.java | 2 +- .../presto/plugin/jdbc/JdbcPageSink.java | 30 ++--- .../presto/plugin/jdbc/JdbcRecordCursor.java | 2 +- .../presto/plugin/jdbc/JdbcRecordSet.java | 2 +- .../presto/plugin/jdbc/QueryBuilder.java | 32 +++--- .../presto/plugin/jdbc/ReadMapping.java | 2 +- .../plugin/jdbc/StandardReadMappings.java | 42 +++---- .../JdbcFilterToSqlTranslator.java | 30 ++--- .../function/OperatorTranslators.java | 2 +- .../presto/plugin/jdbc/MetadataUtil.java | 8 +- .../presto/plugin/jdbc/TestJdbcClient.java | 16 +-- .../plugin/jdbc/TestJdbcColumnHandle.java | 4 +- .../presto/plugin/jdbc/TestJdbcMetadata.java | 6 +- .../jdbc/TestJdbcOutputTableHandle.java | 2 +- .../plugin/jdbc/TestJdbcQueryBuilder.java | 24 ++-- .../presto/plugin/jdbc/TestJdbcRecordSet.java | 6 +- .../jdbc/TestJdbcRecordSetProvider.java | 6 +- .../optimization/TestJdbcComputePushdown.java | 8 +- .../benchmark/AbstractOperatorBenchmark.java | 4 +- .../benchmark/CountAggregationBenchmark.java | 2 +- .../DoubleSumAggregationBenchmark.java | 2 +- .../presto/benchmark/HandTpchQuery1.java | 12 +- .../presto/benchmark/HandTpchQuery6.java | 10 +- .../benchmark/HashAggregationBenchmark.java | 4 +- .../benchmark/HashBuildAndJoinBenchmark.java | 4 +- .../presto/benchmark/HashBuildBenchmark.java | 4 +- .../presto/benchmark/HashJoinBenchmark.java | 2 +- .../presto/benchmark/OrderByBenchmark.java | 4 +- .../benchmark/PredicateFilterBenchmark.java | 4 +- .../presto/benchmark/Top100Benchmark.java | 4 +- .../blackhole/BlackHoleColumnHandle.java | 2 +- .../plugin/blackhole/BlackHoleConnector.java | 10 +- .../BlackHoleNodePartitioningProvider.java | 2 +- .../BlackHolePageSourceProvider.java | 38 +++---- .../cassandra/CassandraColumnHandle.java | 2 +- .../cassandra/CassandraInsertTableHandle.java | 2 +- .../presto/cassandra/CassandraMetadata.java | 2 +- .../cassandra/CassandraOutputTableHandle.java | 2 +- .../presto/cassandra/CassandraPageSink.java | 22 ++-- .../cassandra/CassandraRecordCursor.java | 2 +- .../presto/cassandra/CassandraRecordSet.java | 2 +- .../presto/cassandra/CassandraType.java | 24 ++-- .../cassandra/TestCassandraConnector.java | 20 ++-- .../cassandra/TestCassandraDistributed.java | 2 +- .../TestCassandraIntegrationSmokeTest.java | 20 ++-- ...assandraClusteringPredicatesExtractor.java | 2 +- presto-cli/pom.xml | 5 + .../facebook/presto/cli/TestQueryRunner.java | 2 +- presto-client/pom.xml | 4 + .../facebook/presto/client/ClientSession.java | 2 +- .../presto/client/ClientTypeSignature.java | 12 +- .../client/ClientTypeSignatureParameter.java | 6 +- .../com/facebook/presto/client/Column.java | 4 +- .../presto/client/FixJsonDataUtils.java | 60 +++++----- .../presto/client/StatementClient.java | 2 +- .../presto/client/StatementClientV1.java | 2 +- .../client/TestClientTypeSignature.java | 12 +- .../presto/client/TestFixJsonDataUtils.java | 2 +- presto-common/pom.xml | 46 ++++++++ .../common}/block/AbstractArrayBlock.java | 20 ++-- .../common}/block/AbstractMapBlock.java | 22 ++-- .../common}/block/AbstractRowBlock.java | 22 ++-- .../block/AbstractSingleArrayBlock.java | 4 +- .../common}/block/AbstractSingleMapBlock.java | 4 +- .../common}/block/AbstractSingleRowBlock.java | 4 +- .../block/AbstractVariableWidthBlock.java | 4 +- .../presto/common}/block/ArrayAllocator.java | 5 +- .../presto/common}/block/ArrayBlock.java | 2 +- .../common}/block/ArrayBlockBuilder.java | 8 +- .../common}/block/ArrayBlockEncoding.java | 8 +- .../facebook/presto/common}/block/Block.java | 6 +- .../presto/common}/block/BlockBuilder.java | 2 +- .../common}/block/BlockBuilderStatus.java | 2 +- .../presto/common}/block/BlockEncoding.java | 2 +- .../common}/block/BlockEncodingSerde.java | 2 +- .../presto/common}/block/BlockFlattener.java | 7 +- .../presto/common}/block/BlockLease.java | 5 +- .../presto/common}/block/BlockSerdeUtil.java | 9 +- .../presto/common}/block/BlockUtil.java | 2 +- .../presto/common}/block/ByteArrayBlock.java | 16 +-- .../common}/block/ByteArrayBlockBuilder.java | 12 +- .../common}/block/ByteArrayBlockEncoding.java | 6 +- .../common}/block/ClosingBlockLease.java | 5 +- .../presto/common}/block/ColumnarArray.java | 2 +- .../presto/common}/block/ColumnarMap.java | 4 +- .../presto/common}/block/ColumnarRow.java | 2 +- .../presto/common}/block/DictionaryBlock.java | 16 +-- .../block/DictionaryBlockEncoding.java | 2 +- .../presto/common}/block/DictionaryId.java | 2 +- .../block/DuplicateMapKeyException.java | 6 +- .../presto/common}/block/EncoderUtil.java | 2 +- .../common}/block/Int128ArrayBlock.java | 16 +-- .../block/Int128ArrayBlockBuilder.java | 16 +-- .../block/Int128ArrayBlockEncoding.java | 6 +- .../presto/common}/block/IntArrayBlock.java | 16 +-- .../common}/block/IntArrayBlockBuilder.java | 12 +- .../common}/block/IntArrayBlockEncoding.java | 6 +- .../presto/common}/block/IntArrayList.java | 4 +- .../presto/common}/block/LazyBlock.java | 2 +- .../common}/block/LazyBlockEncoding.java | 2 +- .../presto/common}/block/LazyBlockLoader.java | 2 +- .../presto/common}/block/LongArrayBlock.java | 16 +-- .../common}/block/LongArrayBlockBuilder.java | 12 +- .../common}/block/LongArrayBlockEncoding.java | 6 +- .../presto/common}/block/MapBlock.java | 10 +- .../presto/common}/block/MapBlockBuilder.java | 13 +-- .../common}/block/MapBlockEncoding.java | 14 +-- .../common}/block/MethodHandleUtil.java | 9 +- .../common}/block/PageBuilderStatus.java | 2 +- .../presto/common}/block/RowBlock.java | 2 +- .../presto/common}/block/RowBlockBuilder.java | 8 +- .../common}/block/RowBlockEncoding.java | 4 +- .../common}/block/RunLengthBlockEncoding.java | 2 +- .../common}/block/RunLengthEncodedBlock.java | 14 +-- .../presto/common}/block/ShortArrayBlock.java | 16 +-- .../common}/block/ShortArrayBlockBuilder.java | 12 +- .../block/ShortArrayBlockEncoding.java | 6 +- .../common}/block/SingleArrayBlockWriter.java | 2 +- .../presto/common}/block/SingleMapBlock.java | 20 ++-- .../common}/block/SingleMapBlockEncoding.java | 16 +-- .../common}/block/SingleMapBlockWriter.java | 2 +- .../presto/common}/block/SingleRowBlock.java | 2 +- .../common}/block/SingleRowBlockEncoding.java | 2 +- .../common}/block/SingleRowBlockWriter.java | 2 +- .../presto/common}/block/SortOrder.java | 4 +- .../presto/common}/block/UncheckedBlock.java | 4 +- .../common}/block/VariableWidthBlock.java | 18 +-- .../block/VariableWidthBlockBuilder.java | 24 ++-- .../block/VariableWidthBlockEncoding.java | 6 +- .../function/SqlFunctionProperties.java | 4 +- .../presto/common}/predicate/Primitives.java | 2 +- .../presto/common}/predicate/Utils.java | 12 +- .../presto/common}/type/AbstractIntType.java | 16 +-- .../presto/common}/type/AbstractLongType.java | 16 +-- .../presto/common}/type/AbstractType.java | 8 +- .../type/AbstractVariableWidthType.java | 10 +- .../presto/common}/type/ArrayType.java | 22 ++-- .../presto/common}/type/BigintType.java | 8 +- .../presto/common}/type/BooleanType.java | 18 +-- .../presto/common}/type/CharType.java | 15 ++- .../facebook/presto/common}/type/Chars.java | 6 +- .../presto/common}/type/DateTimeEncoding.java | 6 +- .../presto/common}/type/DateType.java | 8 +- .../common}/type/DecimalParseResult.java | 2 +- .../presto/common}/type/DecimalType.java | 13 +-- .../presto/common}/type/Decimals.java | 19 ++-- .../presto/common}/type/DoubleType.java | 18 +-- .../presto/common}/type/FixedWidthType.java | 4 +- .../presto/common}/type/FunctionType.java | 12 +- .../presto/common}/type/HyperLogLogType.java | 10 +- .../presto/common}/type/IntegerType.java | 18 +-- .../presto/common}/type/JsonType.java | 8 +- .../presto/common}/type/KdbTreeType.java | 18 ++- .../presto/common}/type/LongDecimalType.java | 24 ++-- .../facebook/presto/common}/type/MapType.java | 24 ++-- .../presto/common}/type/NamedType.java | 2 +- .../common}/type/NamedTypeSignature.java | 2 +- .../common}/type/P4HyperLogLogType.java | 12 +- .../presto/common}/type/ParameterKind.java | 2 +- .../presto/common}/type/ParametricType.java | 2 +- .../type/QuantileDigestParametricType.java | 2 +- .../common}/type/QuantileDigestType.java | 4 +- .../presto/common}/type/RealType.java | 15 ++- .../presto/common}/type/RowFieldName.java | 2 +- .../facebook/presto/common}/type/RowType.java | 19 ++-- .../presto/common}/type/ShortDecimalType.java | 18 +-- .../presto/common}/type/SmallintType.java | 30 ++--- .../facebook/presto/common}/type/SqlDate.java | 2 +- .../presto/common}/type/SqlDecimal.java | 2 +- .../facebook/presto/common}/type/SqlTime.java | 2 +- .../common}/type/SqlTimeWithTimeZone.java | 6 +- .../presto/common}/type/SqlTimestamp.java | 4 +- .../type/SqlTimestampWithTimeZone.java | 6 +- .../presto/common}/type/SqlVarbinary.java | 2 +- .../presto/common}/type/StandardTypes.java | 2 +- .../type/StatisticalDigestParametricType.java | 2 +- .../common}/type/StatisticalDigestType.java | 8 +- .../common}/type/TDigestParametricType.java | 2 +- .../presto/common}/type/TDigestType.java | 4 +- .../presto/common}/type/TimeType.java | 8 +- .../common}/type/TimeWithTimeZoneType.java | 10 +- .../presto/common}/type/TimeZoneKey.java | 12 +- .../type/TimeZoneNotSupportedException.java | 10 +- .../presto/common}/type/TimestampType.java | 8 +- .../type/TimestampWithTimeZoneType.java | 10 +- .../presto/common}/type/TinyintType.java | 30 ++--- .../facebook/presto/common}/type/Type.java | 12 +- .../presto/common}/type/TypeManager.java | 2 +- .../presto/common}/type/TypeParameter.java | 2 +- .../presto/common}/type/TypeSerde.java | 4 +- .../presto/common}/type/TypeSignature.java | 2 +- .../common}/type/TypeSignatureParameter.java | 2 +- .../presto/common}/type/TypeUtils.java | 12 +- .../type/UnscaledDecimal128Arithmetic.java | 6 +- .../presto/common}/type/VarbinaryType.java | 10 +- .../presto/common}/type/VarcharType.java | 8 +- .../presto/common}/type/Varchars.java | 2 +- .../common}/type/VariableWidthType.java | 2 +- .../presto/common}/type/zone-index.properties | 0 .../block/BenchmarkComputePosition.java | 2 +- .../common}/block/CountingArrayAllocator.java | 2 +- .../common}/block/TestArrayBlockBuilder.java | 4 +- .../common}/block/TestBlockFlattenner.java | 14 +-- .../block/TestBlockRetainedSizeBreakdown.java | 16 +-- .../presto/common}/block/TestBlockUtil.java | 4 +- .../common}/block/TestClosingBlockLease.java | 6 +- .../block/TestDictionaryBlockEncoding.java | 12 +- .../common}/block/TestIntArrayList.java | 2 +- .../common}/block/TestMethodHandleUtil.java | 6 +- .../block/TestVariableWidthBlockBuilder.java | 4 +- .../block/TestVariableWidthBlockEncoding.java | 15 ++- .../block/TestingBlockEncodingSerde.java | 4 +- .../common}/block/TestingBlockJsonSerde.java | 4 +- .../presto/common}/type/TestArrayType.java | 4 +- .../presto/common}/type/TestChars.java | 6 +- .../presto/common}/type/TestDecimals.java | 8 +- .../common}/type/TestLongDecimalType.java | 10 +- .../presto/common}/type/TestMapType.java | 10 +- .../common}/type/TestParameterKind.java | 2 +- .../presto/common}/type/TestRowType.java | 10 +- .../presto/common}/type/TestSqlDecimal.java | 2 +- .../presto/common}/type/TestTimeZoneKey.java | 6 +- .../presto/common}/type/TestTypeSerde.java | 8 +- .../common}/type/TestTypeSignature.java | 10 +- .../TestUnscaledDecimal128Arithmetic.java | 50 ++++----- .../presto/common}/type/TestingIdType.java | 8 +- .../common}/type/TestingTypeDeserializer.java | 4 +- .../common}/type/TestingTypeManager.java | 20 ++-- .../presto/common}/type/VarcharsTest.java | 8 +- .../DruidAggregationProjectConverter.java | 2 +- .../presto/druid/DruidBrokerPageSource.java | 12 +- .../presto/druid/DruidColumnHandle.java | 2 +- .../presto/druid/DruidConnectorFactory.java | 2 +- .../druid/DruidFilterExpressionConverter.java | 8 +- .../facebook/presto/druid/DruidMetadata.java | 12 +- .../presto/druid/DruidPlanOptimizer.java | 2 +- .../DruidProjectExpressionConverter.java | 6 +- .../presto/druid/DruidPushdownUtils.java | 24 ++-- .../presto/druid/DruidQueryGenerator.java | 4 +- .../presto/druid/DruidSegmentPageSource.java | 8 +- .../presto/druid/column/ColumnReader.java | 14 +-- .../druid/column/DoubleColumnReader.java | 8 +- .../druid/column/FloatColumnReader.java | 8 +- .../presto/druid/column/LongColumnReader.java | 8 +- .../druid/column/StringColumnReader.java | 8 +- .../druid/column/TimestampColumnReader.java | 8 +- .../druid/segment/DruidSegmentReader.java | 4 +- .../presto/druid/segment/SegmentReader.java | 4 +- .../presto/druid/TestDruidColumnHandle.java | 4 +- .../presto/druid/TestDruidQueryBase.java | 12 +- .../presto/druid/TestingMetadataUtil.java | 14 +-- .../elasticsearch/ElasticsearchClient.java | 18 +-- .../elasticsearch/ElasticsearchColumn.java | 2 +- .../ElasticsearchColumnHandle.java | 2 +- .../ElasticsearchConnectorFactory.java | 2 +- .../ElasticsearchConnectorModule.java | 6 +- .../ElasticsearchQueryBuilder.java | 12 +- .../ElasticsearchRecordCursor.java | 12 +- .../elasticsearch/ElasticsearchRecordSet.java | 2 +- .../elasticsearch/ElasticsearchUtils.java | 24 ++-- .../presto/elasticsearch/CodecSupplier.java | 4 +- .../elasticsearch/ElasticsearchLoader.java | 14 +-- ...TestElasticsearchIntegrationSmokeTest.java | 2 +- .../TestingElasticsearchConnectorFactory.java | 2 +- .../presto/example/ExampleColumn.java | 2 +- .../presto/example/ExampleColumnHandle.java | 2 +- .../presto/example/ExampleModule.java | 6 +- .../presto/example/ExampleRecordCursor.java | 10 +- .../presto/example/ExampleRecordSet.java | 2 +- .../facebook/presto/example/MetadataUtil.java | 14 +-- .../presto/example/TestExampleClient.java | 4 +- .../example/TestExampleColumnHandle.java | 4 +- .../presto/example/TestExampleMetadata.java | 4 +- .../presto/example/TestExampleRecordSet.java | 4 +- .../example/TestExampleRecordSetProvider.java | 4 +- .../presto/example/TestExampleTable.java | 4 +- .../expressions/LogicalRowExpressions.java | 2 +- .../TranslatorAnnotationParser.java | 4 +- .../mysql/FunctionNamespaceDao.java | 2 +- .../mysql/MySqlFunctionNamespaceManager.java | 2 +- .../mysql/SqlInvokedFunctionRowMapper.java | 2 +- .../mysql/TypeSignatureArgumentFactory.java | 2 +- .../InMemoryFunctionNamespaceManager.java | 2 +- .../testing/SqlInvokedFunctionTestUtils.java | 6 +- .../TestMySqlFunctionNamespaceManager.java | 6 +- .../plugin/geospatial/BingTileFunctions.java | 12 +- .../plugin/geospatial/BingTileOperators.java | 4 +- .../plugin/geospatial/BingTileType.java | 8 +- .../plugin/geospatial/GeoFunctions.java | 22 ++-- .../presto/plugin/geospatial/GeoPlugin.java | 4 +- .../plugin/geospatial/GeometryType.java | 10 +- .../plugin/geospatial/KdbTreeCasts.java | 2 +- .../SpatialPartitioningAggregateFunction.java | 4 +- ...PartitioningInternalAggregateFunction.java | 8 +- .../SpatialPartitioningStateSerializer.java | 8 +- .../geospatial/SphericalGeoFunctions.java | 8 +- .../geospatial/SphericalGeographyType.java | 10 +- .../aggregation/ConvexHullAggregation.java | 2 +- .../aggregation/GeometryStateSerializer.java | 6 +- .../aggregation/GeometryUnionAgg.java | 2 +- .../geospatial/TestBingTileFunctions.java | 14 +-- .../TestExtractSpatialInnerJoin.java | 6 +- .../TestExtractSpatialLeftJoin.java | 6 +- .../plugin/geospatial/TestGeoFunctions.java | 18 +-- .../plugin/geospatial/TestGeoRelations.java | 2 +- .../plugin/geospatial/TestKdbTreeCasts.java | 2 +- .../geospatial/TestSpatialJoinOperator.java | 6 +- ...patialPartitioningInternalAggregation.java | 6 +- .../geospatial/TestSphericalGeoFunctions.java | 10 +- .../AbstractTestGeoAggregationFunctions.java | 2 +- .../TestGeometryStateSerializer.java | 4 +- presto-hive-metastore/pom.xml | 5 + .../com/facebook/presto/hive/HiveType.java | 42 +++---- .../facebook/presto/hive/TypeTranslator.java | 2 +- .../hive/metastore/CachingHiveMetastore.java | 2 +- .../hive/metastore/ExtendedHiveMetastore.java | 2 +- .../presto/hive/metastore/MetastoreUtil.java | 66 +++++------ .../metastore/RecordingHiveMetastore.java | 2 +- .../SemiTransactionalHiveMetastore.java | 2 +- .../presto/hive/metastore/SortingColumn.java | 6 +- .../presto/hive/metastore/Statistics.java | 26 ++--- .../alluxio/AlluxioHiveMetastore.java | 2 +- .../metastore/file/FileHiveMetastore.java | 2 +- .../metastore/glue/GlueHiveMetastore.java | 2 +- .../thrift/BridgingHiveMetastore.java | 2 +- .../hive/metastore/thrift/HiveMetastore.java | 2 +- .../metastore/thrift/ThriftHiveMetastore.java | 2 +- .../metastore/TestRecordingHiveMetastore.java | 6 +- .../metastore/UnimplementedHiveMetastore.java | 2 +- .../thrift/InMemoryHiveMetastore.java | 2 +- presto-hive/pom.xml | 7 ++ .../hive/CreateEmptyPartitionProcedure.java | 4 +- .../presto/hive/FilteringPageSource.java | 36 +++--- .../presto/hive/GenericHiveRecordCursor.java | 40 +++---- .../hive/GenericHiveRecordCursorProvider.java | 2 +- .../presto/hive/HiveAnalyzeProperties.java | 4 +- .../hive/HiveBucketAdapterRecordCursor.java | 6 +- .../facebook/presto/hive/HiveBucketing.java | 4 +- .../com/facebook/presto/hive/HiveCoercer.java | 42 +++---- .../presto/hive/HiveCoercionPolicy.java | 6 +- .../presto/hive/HiveCoercionRecordCursor.java | 10 +- .../presto/hive/HiveColumnHandle.java | 6 +- .../presto/hive/HiveConnectorFactory.java | 4 +- .../presto/hive/HiveDecimalParser.java | 4 +- .../facebook/presto/hive/HiveMetadata.java | 10 +- .../presto/hive/HiveMetadataFactory.java | 2 +- .../hive/HiveNodePartitioningProvider.java | 2 +- .../facebook/presto/hive/HivePageSink.java | 10 +- .../presto/hive/HivePageSinkProvider.java | 2 +- .../facebook/presto/hive/HivePageSource.java | 12 +- .../presto/hive/HivePageSourceProvider.java | 4 +- .../presto/hive/HivePartitionManager.java | 8 +- .../presto/hive/HiveRecordCursor.java | 32 +++--- .../presto/hive/HiveRecordCursorProvider.java | 2 +- .../presto/hive/HiveSessionProperties.java | 6 +- .../presto/hive/HiveTableProperties.java | 6 +- .../presto/hive/HiveTypeTranslator.java | 32 +++--- .../com/facebook/presto/hive/HiveUtil.java | 52 ++++----- .../facebook/presto/hive/HiveWriteUtils.java | 32 +++--- .../presto/hive/HiveWriterFactory.java | 6 +- .../presto/hive/IonSqlQueryBuilder.java | 22 ++-- .../facebook/presto/hive/OrcFileWriter.java | 8 +- .../presto/hive/OrcFileWriterFactory.java | 4 +- .../presto/hive/RcFileFileWriter.java | 8 +- .../presto/hive/RcFileFileWriterFactory.java | 4 +- .../presto/hive/RecordFileWriter.java | 6 +- .../presto/hive/S3SelectRecordCursor.java | 2 +- .../hive/S3SelectRecordCursorProvider.java | 2 +- .../presto/hive/SortingFileWriter.java | 4 +- .../presto/hive/SortingFileWriterFactory.java | 4 +- .../presto/hive/SubfieldExtractor.java | 14 +-- .../hive/orc/DwrfBatchPageSourceFactory.java | 2 +- .../orc/DwrfSelectivePageSourceFactory.java | 2 +- .../presto/hive/orc/OrcBatchPageSource.java | 12 +- .../hive/orc/OrcBatchPageSourceFactory.java | 4 +- .../orc/OrcSelectivePageSourceFactory.java | 6 +- .../hive/pagefile/PageFilePageSource.java | 4 +- .../pagefile/PageFilePageSourceFactory.java | 2 +- .../hive/pagefile/PageFileWriterFactory.java | 2 +- .../hive/parquet/ParquetPageSource.java | 12 +- .../parquet/ParquetPageSourceFactory.java | 36 +++--- .../presto/hive/rcfile/RcFilePageSource.java | 14 +-- .../hive/rcfile/RcFilePageSourceFactory.java | 4 +- .../statistics/HiveStatisticsProvider.java | 2 +- .../MetastoreHiveStatisticsProvider.java | 28 ++--- .../presto/hive/util/DecimalUtils.java | 4 +- .../presto/hive/util/MergingPageIterator.java | 6 +- .../facebook/presto/hive/util/SerDeUtils.java | 32 +++--- .../facebook/presto/hive/util/SortBuffer.java | 8 +- .../presto/hive/util/TempFileReader.java | 4 +- .../presto/hive/util/TempFileWriter.java | 2 +- .../presto/hive/AbstractTestHiveClient.java | 64 +++++------ .../hive/AbstractTestHiveFileFormats.java | 58 +++++----- .../hive/AbstractTestHiveFileSystem.java | 2 +- .../facebook/presto/hive/HiveTestUtils.java | 16 +-- .../hive/TestBackgroundHiveSplitLoader.java | 4 +- .../presto/hive/TestCoercingFilters.java | 4 +- .../presto/hive/TestDomainTranslator.java | 16 +-- .../presto/hive/TestHiveBucketing.java | 10 +- .../presto/hive/TestHiveColumnHandle.java | 4 +- .../presto/hive/TestHiveDecimalParser.java | 2 +- .../presto/hive/TestHiveFileFormats.java | 14 +-- .../hive/TestHiveIntegrationSmokeTest.java | 24 ++-- .../presto/hive/TestHiveLogicalPlanner.java | 10 +- .../presto/hive/TestHiveMetadata.java | 4 +- .../presto/hive/TestHivePageSink.java | 14 +-- .../presto/hive/TestHivePartitionManager.java | 10 +- .../hive/TestHivePushdownFilterQueries.java | 18 +-- .../facebook/presto/hive/TestHiveRoles.java | 4 +- .../facebook/presto/hive/TestHiveSplit.java | 12 +- .../presto/hive/TestHiveTypeTranslator.java | 4 +- .../presto/hive/TestIonSqlQueryBuilder.java | 22 ++-- .../presto/hive/TestJsonHiveHandles.java | 6 +- .../TestOrcBatchPageSourceMemoryTracking.java | 6 +- .../presto/hive/TestS3SelectRecordCursor.java | 8 +- .../presto/hive/TestSubfieldExtractor.java | 26 ++--- ...TestingSemiTransactionalHiveMetastore.java | 2 +- .../presto/hive/benchmark/FileFormat.java | 2 +- .../benchmark/HiveFileFormatBenchmark.java | 16 +-- .../parquet/AbstractTestParquetReader.java | 40 +++---- .../presto/hive/parquet/ParquetTester.java | 56 ++++----- .../predicate/TestParquetPredicateUtils.java | 16 +-- .../TestMetastoreHiveStatisticsProvider.java | 22 ++-- .../hive/util/TestMergingPageIterator.java | 6 +- .../presto/hive/util/TestSerDeUtils.java | 52 ++++----- .../i18n/functions/I18nMyanmarFunctions.java | 2 +- .../i18n/functions/TestMyanmarFunctions.java | 2 +- presto-jdbc/pom.xml | 5 + .../com/facebook/presto/jdbc/ColumnInfo.java | 6 +- .../facebook/presto/jdbc/PrestoResultSet.java | 2 +- .../presto/jdbc/TestJdbcConnection.java | 2 +- .../presto/jdbc/TestPrestoDriver.java | 40 +++---- .../presto/jdbc/TestProgressMonitor.java | 2 +- .../presto/connector/jmx/JmxColumnHandle.java | 2 +- .../presto/connector/jmx/JmxMetadata.java | 12 +- .../connector/jmx/JmxRecordSetProvider.java | 2 +- .../presto/connector/jmx/JmxSplitManager.java | 2 +- .../presto/connector/jmx/MetadataUtil.java | 8 +- .../connector/jmx/TestJmxColumnHandle.java | 4 +- .../presto/connector/jmx/TestJmxMetadata.java | 6 +- .../connector/jmx/TestJmxSplitManager.java | 4 +- .../connector/jmx/TestJmxTableHandle.java | 4 +- .../presto/kafka/KafkaColumnHandle.java | 2 +- .../presto/kafka/KafkaConnectorFactory.java | 2 +- .../presto/kafka/KafkaConnectorModule.java | 6 +- .../kafka/KafkaInternalFieldDescription.java | 8 +- .../facebook/presto/kafka/KafkaRecordSet.java | 4 +- .../kafka/KafkaTopicFieldDescription.java | 2 +- .../kafka/TestMinimalFunctionality.java | 2 +- .../presto/kafka/util/CodecSupplier.java | 4 +- .../presto/kafka/util/KafkaLoader.java | 26 ++--- .../presto/kudu/KuduClientSession.java | 6 +- .../presto/kudu/KuduColumnHandle.java | 4 +- .../presto/kudu/KuduInsertTableHandle.java | 2 +- .../facebook/presto/kudu/KuduMetadata.java | 6 +- .../com/facebook/presto/kudu/KuduModule.java | 2 +- .../presto/kudu/KuduOutputTableHandle.java | 2 +- .../facebook/presto/kudu/KuduPageSink.java | 32 +++--- .../presto/kudu/KuduRecordCursor.java | 2 +- .../KuduRecordCursorWithVirtualRowId.java | 2 +- .../facebook/presto/kudu/KuduRecordSet.java | 2 +- .../presto/kudu/KuduTableMapping.java | 2 +- .../presto/kudu/KuduUpdatablePageSource.java | 2 +- .../com/facebook/presto/kudu/TypeHelper.java | 30 ++--- .../procedures/RangePartitionProcedures.java | 4 +- .../kudu/properties/KuduTableProperties.java | 4 +- .../presto/kudu/KuduQueryRunnerFactory.java | 2 +- .../presto/kudu/TestKuduIntegrationSmoke.java | 2 +- .../localfile/LocalFileColumnHandle.java | 2 +- .../presto/localfile/LocalFileMetadata.java | 2 +- .../localfile/LocalFileRecordCursor.java | 14 +-- .../presto/localfile/LocalFileRecordSet.java | 2 +- .../presto/localfile/LocalFileTables.java | 6 +- .../presto/localfile/MetadataUtil.java | 16 +-- .../localfile/TestLocalFileColumnHandle.java | 12 +- presto-main/pom.xml | 7 ++ .../facebook/presto/FullConnectorSession.java | 2 +- .../presto/GroupByHashPageIndexer.java | 2 +- .../presto/GroupByHashPageIndexerFactory.java | 2 +- .../facebook/presto/PagesIndexPageSorter.java | 4 +- .../java/com/facebook/presto/Session.java | 4 +- .../presto/SessionRepresentation.java | 2 +- .../presto/SystemSessionProperties.java | 8 +- .../presto/block/BlockEncodingManager.java | 36 +++--- .../facebook/presto/block/BlockJsonSerde.java | 8 +- .../connector/ConnectorContextInstance.java | 4 +- .../presto/connector/ConnectorManager.java | 4 +- .../InformationSchemaMetadata.java | 4 +- .../InformationSchemaPageSourceProvider.java | 2 +- .../system/AbstractPropertiesSystemTable.java | 2 +- .../connector/system/CatalogSystemTable.java | 2 +- .../connector/system/KillQueryProcedure.java | 2 +- .../connector/system/NodeSystemTable.java | 4 +- .../connector/system/QuerySystemTable.java | 12 +- .../system/SystemPageSourceProvider.java | 2 +- .../connector/system/TaskSystemTable.java | 6 +- .../system/TransactionsSystemTable.java | 20 ++-- .../system/jdbc/AttributeJdbcTable.java | 4 +- .../system/jdbc/CatalogJdbcTable.java | 2 +- .../system/jdbc/ColumnJdbcTable.java | 42 +++---- .../system/jdbc/ProcedureColumnJdbcTable.java | 4 +- .../system/jdbc/ProcedureJdbcTable.java | 4 +- .../system/jdbc/PseudoColumnJdbcTable.java | 4 +- .../system/jdbc/SchemaJdbcTable.java | 2 +- .../system/jdbc/SuperTableJdbcTable.java | 2 +- .../system/jdbc/SuperTypeJdbcTable.java | 2 +- .../connector/system/jdbc/TableJdbcTable.java | 2 +- .../system/jdbc/TableTypeJdbcTable.java | 2 +- .../connector/system/jdbc/TypesJdbcTable.java | 12 +- .../connector/system/jdbc/UdtJdbcTable.java | 2 +- .../presto/cost/AssignUniqueIdStatsRule.java | 2 +- ...ConnectorFilterStatsCalculatorService.java | 2 +- .../presto/cost/FilterStatsCalculator.java | 4 +- .../presto/cost/PlanNodeStatsEstimate.java | 6 +- .../presto/cost/RowNumberStatsRule.java | 2 +- .../presto/cost/ScalarStatsCalculator.java | 4 +- .../facebook/presto/cost/StatsNormalizer.java | 16 +-- .../com/facebook/presto/cost/StatsUtil.java | 20 ++-- .../facebook/presto/cost/ValuesStatsRule.java | 2 +- .../presto/execution/AddColumnTask.java | 4 +- .../presto/execution/AlterFunctionTask.java | 2 +- .../facebook/presto/execution/CallTask.java | 6 +- .../presto/execution/CreateFunctionTask.java | 4 +- .../presto/execution/CreateTableTask.java | 4 +- .../presto/execution/DropFunctionTask.java | 2 +- .../presto/execution/QueryExecution.java | 2 +- .../presto/execution/QueryStateMachine.java | 2 +- .../presto/execution/SetSessionTask.java | 2 +- .../execution/SqlTaskExecutionFactory.java | 2 +- .../presto/execution/SqlTaskManager.java | 2 +- .../execution/buffer/PagesSerdeFactory.java | 2 +- .../metadata/AbstractPropertyManager.java | 6 +- .../presto/metadata/BoundVariables.java | 2 +- .../BuiltInFunctionNamespaceManager.java | 16 +-- .../presto/metadata/FunctionManager.java | 10 +- .../presto/metadata/InternalTable.java | 4 +- .../facebook/presto/metadata/Metadata.java | 8 +- .../presto/metadata/MetadataManager.java | 8 +- .../presto/metadata/MetadataUtil.java | 2 +- .../metadata/OperatorNotFoundException.java | 2 +- .../metadata/PolymorphicScalarFunction.java | 4 +- .../PolymorphicScalarFunctionBuilder.java | 4 +- .../presto/metadata/ProcedureRegistry.java | 16 +-- .../metadata/SessionPropertyManager.java | 20 ++-- .../presto/metadata/SignatureBinder.java | 14 +-- .../presto/metadata/SignatureBuilder.java | 2 +- .../metadata/SqlAggregationFunction.java | 4 +- .../facebook/presto/metadata/SqlOperator.java | 2 +- .../presto/metadata/SqlScalarFunction.java | 2 +- .../presto/metadata/ViewDefinition.java | 2 +- .../presto/operator/AggregationOperator.java | 4 +- .../facebook/presto/operator/Aggregator.java | 4 +- .../operator/AssignUniqueIdOperator.java | 6 +- .../presto/operator/BigintGroupByHash.java | 10 +- .../facebook/presto/operator/ChannelSet.java | 2 +- .../presto/operator/DeleteOperator.java | 10 +- .../operator/DistinctLimitOperator.java | 4 +- .../operator/EnforceSingleRowOperator.java | 2 +- .../presto/operator/ExchangeClient.java | 2 +- .../operator/ExplainAnalyzeOperator.java | 4 +- .../operator/FilterAndProjectOperator.java | 2 +- .../facebook/presto/operator/GroupByHash.java | 4 +- .../presto/operator/GroupByIdBlock.java | 6 +- .../presto/operator/GroupIdOperator.java | 10 +- .../presto/operator/GroupedTopNBuilder.java | 6 +- .../operator/HashAggregationOperator.java | 4 +- .../presto/operator/HashSemiJoinOperator.java | 6 +- .../operator/InterpretedHashGenerator.java | 4 +- .../presto/operator/JoinBridgeManager.java | 2 +- .../presto/operator/JoinHashSupplier.java | 2 +- .../facebook/presto/operator/JoinProbe.java | 4 +- .../facebook/presto/operator/JoinUtils.java | 2 +- .../presto/operator/LimitOperator.java | 2 +- .../presto/operator/LookupJoinOperator.java | 2 +- .../operator/LookupJoinOperatorFactory.java | 2 +- .../presto/operator/LookupJoinOperators.java | 2 +- .../operator/LookupJoinPageBuilder.java | 6 +- .../presto/operator/LookupOuterOperator.java | 2 +- .../presto/operator/LookupSourceFactory.java | 2 +- .../presto/operator/MarkDistinctHash.java | 8 +- .../presto/operator/MarkDistinctOperator.java | 6 +- .../presto/operator/MergeHashSort.java | 2 +- .../presto/operator/MergeOperator.java | 4 +- .../operator/MetadataDeleteOperator.java | 6 +- .../operator/MultiChannelGroupByHash.java | 12 +- .../operator/NestedLoopJoinOperator.java | 4 +- .../presto/operator/NoChannelGroupByHash.java | 6 +- .../presto/operator/OrderByOperator.java | 4 +- .../presto/operator/OutputFactory.java | 2 +- .../facebook/presto/operator/PagesIndex.java | 8 +- .../presto/operator/PagesRTreeIndex.java | 8 +- .../operator/PagesSpatialIndexFactory.java | 2 +- .../operator/PagesSpatialIndexSupplier.java | 8 +- .../operator/ParametricFunctionHelpers.java | 2 +- .../ParametricImplementationsGroup.java | 2 +- .../operator/PartitionedLookupSource.java | 2 +- .../PartitionedLookupSourceFactory.java | 2 +- .../operator/PrecomputedHashGenerator.java | 2 +- .../presto/operator/RowComparator.java | 6 +- .../presto/operator/RowNumberOperator.java | 8 +- .../ScanFilterAndProjectOperator.java | 8 +- .../presto/operator/SetBuilderOperator.java | 4 +- .../presto/operator/SimpleArrayAllocator.java | 2 +- .../SimplePageWithPositionComparator.java | 6 +- .../operator/SimplePagesHashStrategy.java | 6 +- .../operator/SimplePagesIndexComparator.java | 6 +- .../operator/SpatialIndexBuilderOperator.java | 2 +- .../presto/operator/SpatialJoinOperator.java | 4 +- .../operator/StatisticsWriterOperator.java | 8 +- .../StreamingAggregationOperator.java | 4 +- .../presto/operator/TableFinishOperator.java | 8 +- .../operator/TableWriterMergeOperator.java | 8 +- .../presto/operator/TableWriterOperator.java | 12 +- .../presto/operator/TableWriterUtils.java | 6 +- .../presto/operator/TaskOutputOperator.java | 4 +- .../presto/operator/TopNOperator.java | 4 +- .../operator/TopNRowNumberOperator.java | 8 +- .../operator/WindowFunctionDefinition.java | 2 +- .../presto/operator/WindowOperator.java | 8 +- ...stractGroupCollectionAggregationState.java | 2 +- .../AbstractMinMaxAggregationFunction.java | 10 +- .../AbstractMinMaxNAggregationFunction.java | 16 +-- .../operator/aggregation/Accumulator.java | 6 +- .../aggregation/AccumulatorCompiler.java | 12 +- .../aggregation/AccumulatorFactoryBinder.java | 4 +- .../AggregationFromAnnotationsParser.java | 2 +- .../AggregationImplementation.java | 10 +- .../aggregation/AggregationMetadata.java | 6 +- .../aggregation/AggregationUtils.java | 4 +- .../ApproximateCountDistinctAggregation.java | 8 +- ...proximateDoublePercentileAggregations.java | 6 +- ...mateDoublePercentileArrayAggregations.java | 8 +- ...ApproximateLongPercentileAggregations.java | 6 +- ...ximateLongPercentileArrayAggregations.java | 10 +- ...ApproximateRealPercentileAggregations.java | 6 +- ...ximateRealPercentileArrayAggregations.java | 8 +- .../ApproximateSetAggregation.java | 4 +- .../ArbitraryAggregationFunction.java | 10 +- .../aggregation/AverageAggregations.java | 6 +- .../aggregation/BitwiseAndAggregation.java | 6 +- .../aggregation/BitwiseOrAggregation.java | 6 +- .../operator/aggregation/BlockComparator.java | 2 +- .../aggregation/BooleanAndAggregation.java | 6 +- .../aggregation/BooleanOrAggregation.java | 6 +- .../CentralMomentsAggregation.java | 6 +- .../ChecksumAggregationFunction.java | 16 +-- .../ClassificationFallOutAggregation.java | 4 +- .../ClassificationMissRateAggregation.java | 4 +- .../ClassificationPrecisionAggregation.java | 4 +- .../ClassificationRecallAggregation.java | 4 +- .../ClassificationThresholdsAggregation.java | 4 +- .../aggregation/CountAggregation.java | 6 +- .../operator/aggregation/CountColumn.java | 14 +-- .../aggregation/CountIfAggregation.java | 6 +- .../DecimalAverageAggregation.java | 22 ++-- .../aggregation/DecimalSumAggregation.java | 20 ++-- ...ltApproximateCountDistinctAggregation.java | 6 +- .../DoubleCorrelationAggregation.java | 6 +- .../DoubleCovarianceAggregation.java | 6 +- .../DoubleHistogramAggregation.java | 8 +- .../DoubleRegressionAggregation.java | 6 +- .../aggregation/DoubleSumAggregation.java | 6 +- .../aggregation/EntropyAggregation.java | 6 +- .../GenericAccumulatorFactory.java | 12 +- .../GenericAccumulatorFactoryBinder.java | 4 +- .../GeometricMeanAggregations.java | 6 +- .../aggregation/GroupedAccumulator.java | 6 +- .../InternalAggregationFunction.java | 6 +- ...IntervalDayToSecondAverageAggregation.java | 4 +- .../IntervalDayToSecondSumAggregation.java | 4 +- ...IntervalYearToMonthAverageAggregation.java | 4 +- .../IntervalYearToMonthSumAggregation.java | 4 +- .../operator/aggregation/KeyValuePairs.java | 6 +- .../LazyAccumulatorFactoryBinder.java | 4 +- .../aggregation/LongSumAggregation.java | 6 +- .../aggregation/MapAggregationFunction.java | 16 +-- .../aggregation/MapUnionAggregation.java | 16 +-- .../aggregation/MaxDataSizeForStats.java | 8 +- .../MergeHyperLogLogAggregation.java | 4 +- .../MergeQuantileDigestFunction.java | 6 +- .../MergeStatisticalDigestFunction.java | 10 +- .../aggregation/MergeTDigestFunction.java | 6 +- .../aggregation/ParametricAggregation.java | 6 +- .../PrecisionRecallAggregation.java | 2 +- .../QuantileDigestAggregationFunction.java | 8 +- .../aggregation/RealAverageAggregation.java | 12 +- .../RealCorrelationAggregation.java | 6 +- .../RealCovarianceAggregation.java | 6 +- .../RealGeometricMeanAggregations.java | 6 +- .../aggregation/RealHistogramAggregation.java | 6 +- .../RealRegressionAggregation.java | 6 +- .../aggregation/RealSumAggregation.java | 6 +- .../ReduceAggregationFunction.java | 8 +- .../StatisticalDigestAggregationFunction.java | 22 ++-- .../aggregation/SumDataSizeForStats.java | 8 +- .../TDigestAggregationFunction.java | 8 +- .../operator/aggregation/TypedHeap.java | 6 +- .../aggregation/TypedKeyValueHeap.java | 12 +- .../presto/operator/aggregation/TypedSet.java | 6 +- .../aggregation/VarianceAggregation.java | 6 +- .../arrayagg/ArrayAggregationFunction.java | 12 +- .../arrayagg/ArrayAggregationState.java | 2 +- .../ArrayAggregationStateConsumer.java | 2 +- .../ArrayAggregationStateFactory.java | 2 +- .../ArrayAggregationStateSerializer.java | 8 +- .../arrayagg/GroupArrayAggregationState.java | 4 +- .../LegacyArrayAggregationGroupState.java | 6 +- .../arrayagg/SingleArrayAggregationState.java | 6 +- .../InMemoryHashAggregationBuilder.java | 6 +- .../MergingHashAggregationBuilder.java | 2 +- .../SpillableHashAggregationBuilder.java | 2 +- .../DifferentialEntropyAggregation.java | 6 +- .../DifferentialEntropyStateSerializer.java | 8 +- .../histogram/GroupedHistogramState.java | 4 +- .../histogram/GroupedTypedHistogram.java | 8 +- .../aggregation/histogram/Histogram.java | 16 +-- .../aggregation/histogram/HistogramState.java | 4 +- .../histogram/HistogramStateFactory.java | 2 +- .../histogram/HistogramStateSerializer.java | 6 +- .../histogram/HistogramValueReader.java | 2 +- .../histogram/LegacyHistogramGroupState.java | 4 +- .../histogram/SingleHistogramState.java | 4 +- .../histogram/SingleTypedHistogram.java | 8 +- .../aggregation/histogram/TypedHistogram.java | 6 +- .../aggregation/histogram/ValueStore.java | 6 +- .../minmaxby/AbstractMinMaxBy.java | 12 +- .../AbstractMinMaxByNAggregationFunction.java | 16 +-- .../BlockAndBlockPositionStateSerializer.java | 6 +- .../BlockAndBlockPositionValueState.java | 2 +- .../minmaxby/BlockBooleanState.java | 2 +- .../minmaxby/BlockDoubleState.java | 2 +- .../aggregation/minmaxby/BlockLongState.java | 2 +- ...ooleanAndBlockPositionStateSerializer.java | 6 +- ...DoubleAndBlockPositionStateSerializer.java | 6 +- .../KeyAndBlockPositionValueState.java | 2 +- ...yAndBlockPositionValueStateSerializer.java | 16 +-- .../LongAndBlockPositionStateSerializer.java | 6 +- .../minmaxby/MinMaxByNStateSerializer.java | 6 +- .../SliceAndBlockPositionStateSerializer.java | 6 +- .../TwoNullableValueStateMapping.java | 4 +- .../GroupedMultimapAggregationState.java | 4 +- ...LegacyGroupedMultimapAggregationState.java | 6 +- .../MultimapAggregationFunction.java | 16 +-- .../multimapagg/MultimapAggregationState.java | 2 +- .../MultimapAggregationStateConsumer.java | 2 +- .../MultimapAggregationStateFactory.java | 2 +- .../MultimapAggregationStateSerializer.java | 14 +-- .../SingleMultimapAggregationState.java | 6 +- .../aggregation/state/BlockPositionState.java | 6 +- .../state/BlockPositionStateSerializer.java | 6 +- .../aggregation/state/BlockState.java | 6 +- .../state/BlockStateSerializer.java | 6 +- ...gestAndPercentileArrayStateSerializer.java | 8 +- .../DigestAndPercentileStateSerializer.java | 8 +- .../state/DoubleHistogramStateSerializer.java | 8 +- .../state/HyperLogLogStateSerializer.java | 8 +- .../state/KeyValuePairStateSerializer.java | 8 +- .../aggregation/state/KeyValuePairsState.java | 2 +- .../state/KeyValuePairsStateFactory.java | 2 +- ...ecimalWithOverflowAndLongStateFactory.java | 2 +- ...malWithOverflowAndLongStateSerializer.java | 10 +- .../LongDecimalWithOverflowStateFactory.java | 2 +- ...ongDecimalWithOverflowStateSerializer.java | 10 +- .../state/MinMaxNStateSerializer.java | 12 +- .../state/NullableBooleanState.java | 4 +- .../state/NullableBooleanStateSerializer.java | 8 +- .../state/NullableDoubleState.java | 4 +- .../state/NullableDoubleStateSerializer.java | 8 +- .../aggregation/state/NullableLongState.java | 4 +- .../state/NullableLongStateSerializer.java | 8 +- .../state/PrecisionRecallStateSerializer.java | 8 +- .../aggregation/state/SliceState.java | 4 +- .../aggregation/state/StateCompiler.java | 20 ++-- .../StatisticalDigestStateSerializer.java | 8 +- .../state/TriStateBooleanState.java | 4 +- .../state/TriStateBooleanStateSerializer.java | 8 +- .../FunctionImplementationDependency.java | 2 +- .../annotations/FunctionsParserHelper.java | 2 +- .../annotations/ImplementationDependency.java | 8 +- .../LiteralImplementationDependency.java | 2 +- .../OperatorImplementationDependency.java | 2 +- .../ScalarImplementationDependency.java | 2 +- .../TypeImplementationDependency.java | 8 +- .../operator/exchange/LocalExchange.java | 2 +- .../exchange/LocalMergeSourceOperator.java | 4 +- .../exchange/PageChannelSelector.java | 2 +- .../exchange/PartitioningExchanger.java | 2 +- .../index/DynamicTupleFilterFactory.java | 6 +- .../index/FieldSetFilteringRecordSet.java | 2 +- .../IndexBuildDriverFactoryProvider.java | 2 +- .../presto/operator/index/IndexLoader.java | 2 +- .../index/IndexLookupSourceFactory.java | 2 +- .../operator/index/IndexSnapshotBuilder.java | 4 +- .../presto/operator/index/PageRecordSet.java | 2 +- .../operator/index/StreamingIndexedData.java | 6 +- .../operator/index/TuplePageFilter.java | 6 +- .../index/UnloadedIndexKeyRecordSet.java | 4 +- .../project/ConstantPageProjection.java | 12 +- .../operator/project/CursorProcessor.java | 2 +- .../project/DictionaryAwarePageFilter.java | 8 +- .../DictionaryAwarePageProjection.java | 10 +- .../project/GeneratedPageProjection.java | 6 +- .../operator/project/InputChannels.java | 2 +- .../operator/project/InputPageProjection.java | 4 +- .../operator/project/MergingPageOutput.java | 8 +- .../presto/operator/project/PageFilter.java | 2 +- .../operator/project/PageProcessor.java | 12 +- .../operator/project/PageProjection.java | 4 +- .../project/PageProjectionWithOutputs.java | 4 +- .../AbstractBlockEncodingBuffer.java | 26 ++--- .../repartition/ArrayBlockEncodingBuffer.java | 4 +- .../ByteArrayBlockEncodingBuffer.java | 4 +- .../repartition/DecodedBlockNode.java | 8 +- .../Int128ArrayBlockEncodingBuffer.java | 4 +- .../IntArrayBlockEncodingBuffer.java | 4 +- .../LongArrayBlockEncodingBuffer.java | 4 +- .../repartition/MapBlockEncodingBuffer.java | 6 +- .../OptimizedPartitionedOutputOperator.java | 30 ++--- .../PartitionedOutputOperator.java | 8 +- .../repartition/RowBlockEncodingBuffer.java | 4 +- .../ShortArrayBlockEncodingBuffer.java | 4 +- .../VariableWidthBlockEncodingBuffer.java | 8 +- .../scalar/AbstractGreatestLeast.java | 8 +- .../presto/operator/scalar/ApplyFunction.java | 6 +- .../scalar/ArrayAllMatchFunction.java | 6 +- .../scalar/ArrayAnyMatchFunction.java | 6 +- .../scalar/ArrayCardinalityFunction.java | 4 +- .../scalar/ArrayCombinationsFunction.java | 14 +-- .../operator/scalar/ArrayConcatFunction.java | 10 +- .../operator/scalar/ArrayConcatUtils.java | 6 +- .../operator/scalar/ArrayConstructor.java | 12 +- .../presto/operator/scalar/ArrayContains.java | 6 +- .../scalar/ArrayDistinctFromOperator.java | 6 +- .../scalar/ArrayDistinctFunction.java | 8 +- .../scalar/ArrayElementAtFunction.java | 4 +- .../operator/scalar/ArrayEqualOperator.java | 8 +- .../operator/scalar/ArrayExceptFunction.java | 6 +- .../operator/scalar/ArrayFilterFunction.java | 6 +- .../operator/scalar/ArrayFlattenFunction.java | 14 +-- .../operator/scalar/ArrayFunctions.java | 6 +- .../scalar/ArrayGreaterThanOperator.java | 10 +- .../ArrayGreaterThanOrEqualOperator.java | 10 +- .../scalar/ArrayHashCodeOperator.java | 8 +- .../scalar/ArrayIndeterminateOperator.java | 8 +- .../scalar/ArrayIntersectFunction.java | 6 +- .../presto/operator/scalar/ArrayJoin.java | 18 +-- .../scalar/ArrayLessThanOperator.java | 10 +- .../scalar/ArrayLessThanOrEqualOperator.java | 10 +- .../operator/scalar/ArrayMaxFunction.java | 4 +- .../operator/scalar/ArrayMinFunction.java | 4 +- .../operator/scalar/ArrayMinMaxUtils.java | 4 +- .../operator/scalar/ArrayNgramsFunction.java | 6 +- .../scalar/ArrayNoneMatchFunction.java | 6 +- .../scalar/ArrayNotEqualOperator.java | 6 +- .../scalar/ArrayPositionFunction.java | 6 +- .../operator/scalar/ArrayReduceFunction.java | 10 +- .../operator/scalar/ArrayRemoveFunction.java | 8 +- .../operator/scalar/ArrayReverseFunction.java | 6 +- .../operator/scalar/ArrayShuffleFunction.java | 6 +- .../operator/scalar/ArraySliceFunction.java | 6 +- .../scalar/ArraySortComparatorFunction.java | 6 +- .../operator/scalar/ArraySortFunction.java | 15 +-- .../scalar/ArraySubscriptOperator.java | 8 +- .../operator/scalar/ArrayToArrayCast.java | 10 +- .../scalar/ArrayToElementConcatFunction.java | 8 +- .../operator/scalar/ArrayToJsonCast.java | 14 +-- .../scalar/ArrayTransformFunction.java | 12 +- .../operator/scalar/ArrayUnionFunction.java | 8 +- .../scalar/ArraysOverlapFunction.java | 12 +- .../operator/scalar/BitwiseFunctions.java | 2 +- .../scalar/BlockToBooleanFunction.java | 2 +- .../BuiltInScalarFunctionImplementation.java | 2 +- .../scalar/CastFromUnknownOperator.java | 6 +- .../operator/scalar/CharacterStringCasts.java | 6 +- .../operator/scalar/ColorFunctions.java | 2 +- .../operator/scalar/CombineHashFunction.java | 2 +- .../operator/scalar/ConcatFunction.java | 8 +- .../operator/scalar/DataSizeFunctions.java | 2 +- .../operator/scalar/DateTimeFunctions.java | 18 +-- .../scalar/ElementToArrayConcatFunction.java | 8 +- .../operator/scalar/EmptyMapConstructor.java | 8 +- .../operator/scalar/FailureFunction.java | 2 +- .../presto/operator/scalar/HmacFunctions.java | 2 +- .../operator/scalar/HyperLogLogFunctions.java | 4 +- .../presto/operator/scalar/IdentityCast.java | 6 +- .../operator/scalar/InvokeFunction.java | 6 +- .../operator/scalar/IpPrefixFunctions.java | 6 +- .../operator/scalar/JoniRegexpCasts.java | 2 +- .../operator/scalar/JoniRegexpFunctions.java | 8 +- .../JoniRegexpReplaceLambdaFunction.java | 6 +- .../presto/operator/scalar/JsonFunctions.java | 12 +- .../presto/operator/scalar/JsonOperators.java | 26 ++--- .../scalar/JsonStringToArrayCast.java | 6 +- .../operator/scalar/JsonStringToMapCast.java | 6 +- .../operator/scalar/JsonStringToRowCast.java | 6 +- .../operator/scalar/JsonToArrayCast.java | 18 +-- .../presto/operator/scalar/JsonToMapCast.java | 18 +-- .../presto/operator/scalar/JsonToRowCast.java | 18 +-- .../scalar/MapCardinalityFunction.java | 4 +- .../operator/scalar/MapConcatFunction.java | 16 +-- .../operator/scalar/MapConstructor.java | 24 ++-- .../scalar/MapDistinctFromOperator.java | 8 +- .../operator/scalar/MapElementAtFunction.java | 12 +- .../operator/scalar/MapEntriesFunction.java | 10 +- .../operator/scalar/MapEqualOperator.java | 8 +- .../operator/scalar/MapFilterFunction.java | 16 +-- .../scalar/MapFromEntriesFunction.java | 12 +- .../operator/scalar/MapGenericEquality.java | 8 +- .../operator/scalar/MapHashCodeOperator.java | 10 +- .../scalar/MapIndeterminateOperator.java | 8 +- .../presto/operator/scalar/MapKeys.java | 6 +- .../operator/scalar/MapNotEqualOperator.java | 6 +- .../operator/scalar/MapSubscriptOperator.java | 16 +-- .../presto/operator/scalar/MapToJsonCast.java | 14 +-- .../presto/operator/scalar/MapToMapCast.java | 20 ++-- .../scalar/MapTransformKeyFunction.java | 18 +-- .../scalar/MapTransformValueFunction.java | 16 +-- .../presto/operator/scalar/MapValues.java | 6 +- .../operator/scalar/MapZipWithFunction.java | 22 ++-- .../presto/operator/scalar/MathFunctions.java | 34 +++--- .../scalar/MultimapFromEntriesFunction.java | 12 +- .../operator/scalar/ParametricScalar.java | 2 +- .../scalar/QuantileDigestFunctions.java | 12 +- .../scalar/Re2JCastToRegexpFunction.java | 6 +- .../operator/scalar/Re2JRegexpFunctions.java | 4 +- .../Re2JRegexpReplaceLambdaFunction.java | 6 +- .../operator/scalar/RepeatFunction.java | 8 +- .../scalar/RowComparisonOperator.java | 12 +- .../scalar/RowDistinctFromOperator.java | 14 +-- .../operator/scalar/RowEqualOperator.java | 14 +-- .../scalar/RowGreaterThanOperator.java | 8 +- .../scalar/RowGreaterThanOrEqualOperator.java | 8 +- .../operator/scalar/RowHashCodeOperator.java | 12 +- .../scalar/RowIndeterminateOperator.java | 8 +- .../operator/scalar/RowLessThanOperator.java | 8 +- .../scalar/RowLessThanOrEqualOperator.java | 8 +- .../operator/scalar/RowNotEqualOperator.java | 10 +- .../presto/operator/scalar/RowToJsonCast.java | 12 +- .../presto/operator/scalar/RowToRowCast.java | 14 +-- .../operator/scalar/SequenceFunction.java | 16 +-- .../operator/scalar/SessionFunctions.java | 4 +- .../operator/scalar/SplitToMapFunction.java | 10 +- .../scalar/SplitToMultimapFunction.java | 10 +- .../operator/scalar/StringFunctions.java | 12 +- .../operator/scalar/TDigestFunctions.java | 8 +- .../operator/scalar/TryCastFunction.java | 6 +- .../presto/operator/scalar/TryFunction.java | 2 +- .../operator/scalar/TypeOfFunction.java | 4 +- .../presto/operator/scalar/UrlFunctions.java | 2 +- .../operator/scalar/VarbinaryFunctions.java | 2 +- .../operator/scalar/WilsonInterval.java | 2 +- .../presto/operator/scalar/ZipFunction.java | 14 +-- .../operator/scalar/ZipWithFunction.java | 16 +-- .../scalar/annotations/OperatorValidator.java | 4 +- .../ParametricScalarImplementation.java | 14 +-- .../operator/unnest/ArrayOfRowsUnnester.java | 10 +- .../presto/operator/unnest/ArrayUnnester.java | 6 +- .../presto/operator/unnest/MapUnnester.java | 6 +- .../unnest/ReplicatedBlockBuilder.java | 4 +- .../operator/unnest/UnnestBlockBuilder.java | 4 +- .../operator/unnest/UnnestOperator.java | 12 +- .../presto/operator/unnest/Unnester.java | 2 +- .../window/AggregateWindowFunction.java | 2 +- .../CumulativeDistributionFunction.java | 4 +- .../operator/window/DenseRankFunction.java | 4 +- .../operator/window/FirstValueFunction.java | 2 +- .../presto/operator/window/LagFunction.java | 2 +- .../operator/window/LastValueFunction.java | 2 +- .../presto/operator/window/LeadFunction.java | 2 +- .../presto/operator/window/NTileFunction.java | 4 +- .../operator/window/NthValueFunction.java | 2 +- .../operator/window/PagesWindowIndex.java | 4 +- .../operator/window/PercentRankFunction.java | 4 +- .../presto/operator/window/RankFunction.java | 4 +- .../ReflectionWindowFunctionSupplier.java | 2 +- .../operator/window/RowNumberFunction.java | 4 +- .../operator/window/SqlWindowFunction.java | 2 +- .../window/WindowAnnotationsParser.java | 4 +- .../facebook/presto/server/PluginManager.java | 6 +- .../presto/server/QuerySessionSupplier.java | 4 +- .../presto/server/ServerMainModule.java | 10 +- .../protocol/ExecutingStatementResource.java | 2 +- .../presto/server/protocol/Query.java | 8 +- .../presto/server/protocol/RowIterable.java | 4 +- .../FileSingleStreamSpillerFactory.java | 4 +- .../spiller/GenericPartitioningSpiller.java | 2 +- .../GenericPartitioningSpillerFactory.java | 2 +- .../presto/spiller/GenericSpiller.java | 2 +- .../presto/spiller/GenericSpillerFactory.java | 2 +- .../spiller/PartitioningSpillerFactory.java | 2 +- .../spiller/SingleStreamSpillerFactory.java | 2 +- .../presto/spiller/SpillerFactory.java | 2 +- .../presto/split/EmptySplitPageSource.java | 2 +- .../presto/split/MappedPageSource.java | 2 +- .../presto/split/MappedRecordSet.java | 2 +- .../sql/InterpretedFunctionInvoker.java | 2 +- .../facebook/presto/sql/Serialization.java | 4 +- .../presto/sql/SqlEnvironmentConfig.java | 2 +- .../presto/sql/analyzer/Analysis.java | 2 +- .../sql/analyzer/ExpressionAnalysis.java | 2 +- .../sql/analyzer/ExpressionAnalyzer.java | 52 ++++----- .../facebook/presto/sql/analyzer/Field.java | 2 +- .../presto/sql/analyzer/ResolvedField.java | 2 +- .../sql/analyzer/StatementAnalyzer.java | 16 +-- .../sql/analyzer/TypeSignatureProvider.java | 4 +- .../presto/sql/gen/AndCodeGenerator.java | 2 +- .../presto/sql/gen/ArrayGeneratorUtils.java | 2 +- .../sql/gen/ArrayMapBytecodeExpression.java | 8 +- .../presto/sql/gen/BindCodeGenerator.java | 2 +- .../facebook/presto/sql/gen/BodyCompiler.java | 2 +- .../presto/sql/gen/BytecodeUtils.java | 6 +- .../presto/sql/gen/CoalesceCodeGenerator.java | 2 +- .../presto/sql/gen/CompilerOperations.java | 4 +- .../sql/gen/CursorProcessorCompiler.java | 6 +- .../sql/gen/DereferenceCodeGenerator.java | 4 +- .../presto/sql/gen/ExpressionCompiler.java | 4 +- .../sql/gen/FunctionCallCodeGenerator.java | 2 +- .../presto/sql/gen/IfCodeGenerator.java | 2 +- .../presto/sql/gen/InCodeGenerator.java | 8 +- .../sql/gen/InputReferenceCompiler.java | 2 +- .../presto/sql/gen/IsNullCodeGenerator.java | 2 +- .../facebook/presto/sql/gen/JoinCompiler.java | 10 +- .../sql/gen/JoinFilterFunctionCompiler.java | 4 +- .../sql/gen/LambdaBytecodeGenerator.java | 2 +- .../presto/sql/gen/NullIfCodeGenerator.java | 4 +- .../presto/sql/gen/OrCodeGenerator.java | 2 +- .../presto/sql/gen/OrderingCompiler.java | 6 +- .../presto/sql/gen/PageFunctionCompiler.java | 6 +- .../sql/gen/RowConstructorCodeGenerator.java | 8 +- .../presto/sql/gen/RowExpressionCompiler.java | 4 +- .../gen/RowExpressionPredicateCompiler.java | 4 +- .../sql/gen/SpecialFormBytecodeGenerator.java | 2 +- .../sql/gen/SqlTypeBytecodeExpression.java | 2 +- .../presto/sql/gen/SwitchCodeGenerator.java | 2 +- .../planner/AnalyzedExpressionRewriter.java | 2 +- .../facebook/presto/sql/planner/Coercer.java | 2 +- .../planner/DesugarAtTimeZoneRewriter.java | 10 +- .../planner/DesugarRowSubscriptRewriter.java | 4 +- .../planner/ExpressionDomainTranslator.java | 6 +- .../sql/planner/ExpressionInterpreter.java | 32 +++--- .../sql/planner/HttpRemoteSourceFactory.java | 6 +- .../presto/sql/planner/Interpreters.java | 8 +- .../presto/sql/planner/LiteralEncoder.java | 50 ++++----- .../sql/planner/LiteralInterpreter.java | 50 ++++----- .../sql/planner/LocalExecutionPlanner.java | 16 +-- .../presto/sql/planner/LogicalPlanner.java | 6 +- .../sql/planner/NodePartitioningManager.java | 2 +- .../sql/planner/NullabilityAnalyzer.java | 4 +- .../presto/sql/planner/ParameterRewriter.java | 2 +- .../presto/sql/planner/PlanFragment.java | 2 +- .../presto/sql/planner/PlanFragmenter.java | 4 +- .../sql/planner/PlanVariableAllocator.java | 4 +- .../presto/sql/planner/PlannerUtils.java | 2 +- .../presto/sql/planner/QueryPlanner.java | 8 +- .../presto/sql/planner/RelationPlanner.java | 8 +- .../sql/planner/RemoteSourceFactory.java | 4 +- .../RowExpressionEqualityInference.java | 4 +- .../sql/planner/RowExpressionInterpreter.java | 38 +++---- .../RowExpressionPredicateExtractor.java | 4 +- .../planner/StatisticsAggregationPlanner.java | 6 +- .../presto/sql/planner/SubqueryPlanner.java | 2 +- .../sql/planner/SystemPartitioningHandle.java | 2 +- .../presto/sql/planner/TranslationMap.java | 2 +- .../presto/sql/planner/TypeProvider.java | 2 +- .../iterative/rule/ExtractSpatialJoins.java | 14 +-- .../rule/ImplementFilteredAggregations.java | 2 +- ...ipleDistinctAggregationToMarkDistinct.java | 2 +- .../iterative/rule/PickTableLayout.java | 2 +- .../rule/PruneCountAggregationOverScalar.java | 2 +- .../rule/PushAggregationThroughOuterJoin.java | 2 +- .../rule/PushProjectionThroughUnion.java | 2 +- .../iterative/rule/RemoveEmptyDelete.java | 2 +- ...RewriteSpatialPartitioningAggregation.java | 8 +- .../rule/SimplifyCountOverConstant.java | 2 +- .../iterative/rule/SimplifyExpressions.java | 2 +- .../rule/SimplifyRowExpressions.java | 2 +- .../TransformCorrelatedInPredicateToJoin.java | 4 +- .../TransformCorrelatedScalarSubquery.java | 6 +- .../TransformExistsApplyToLateralNode.java | 4 +- .../iterative/rule/TranslateExpressions.java | 4 +- .../planner/optimizations/AddExchanges.java | 2 +- .../optimizations/AddLocalExchanges.java | 4 +- .../optimizations/AggregationNodeUtils.java | 2 +- .../optimizations/ExpressionEquivalence.java | 4 +- .../HashGenerationOptimizer.java | 2 +- .../ImplementIntersectAndExceptAsUnion.java | 8 +- .../planner/optimizations/JoinNodeUtils.java | 2 +- .../OptimizeMixedDistinctAggregations.java | 4 +- .../optimizations/PredicatePushDown.java | 2 +- .../optimizations/PropertyDerivations.java | 2 +- .../optimizations/PushdownSubfields.java | 6 +- .../RowExpressionPredicatePushDown.java | 6 +- .../ScalarAggregationToJoinRewriter.java | 6 +- .../planner/optimizations/SymbolMapper.java | 2 +- ...uantifiedComparisonApplyToLateralJoin.java | 8 +- .../UnaliasSymbolReferences.java | 2 +- .../optimizations/WindowFilterPushDown.java | 2 +- .../planner/planPrinter/IOPlanPrinter.java | 16 +-- .../sql/planner/planPrinter/PlanPrinter.java | 4 +- .../planPrinter/RowExpressionFormatter.java | 4 +- .../sql/planner/sanity/TypeValidator.java | 6 +- .../presto/sql/relational/Expressions.java | 2 +- .../sql/relational/FunctionResolution.java | 8 +- .../relational/OriginalExpressionUtils.java | 2 +- .../RowExpressionDomainTranslator.java | 8 +- .../sql/relational/SqlFunctionUtils.java | 4 +- .../SqlToRowExpressionTranslator.java | 44 ++++---- .../sql/rewrite/DescribeInputRewrite.java | 2 +- .../sql/rewrite/DescribeOutputRewrite.java | 2 +- .../sql/rewrite/ShowQueriesRewrite.java | 2 +- .../presto/sql/rewrite/ShowStatsRewrite.java | 22 ++-- .../presto/testing/AggregationTestUtils.java | 4 +- .../presto/testing/DateTimeTestingUtils.java | 8 +- .../presto/testing/LocalQueryRunner.java | 4 +- .../presto/testing/MaterializedResult.java | 62 +++++----- .../presto/testing/NullOutputOperator.java | 2 +- .../presto/testing/PageConsumerOperator.java | 2 +- .../testing/TestingConnectorContext.java | 4 +- .../testing/TestingConnectorSession.java | 6 +- .../presto/testing/TestingEnvironment.java | 2 +- .../presto/testing/TestingMetadata.java | 2 +- .../presto/testing/TestingSession.java | 2 +- .../presto/type/ArrayParametricType.java | 14 +-- .../facebook/presto/type/BigintOperators.java | 8 +- .../presto/type/BooleanOperators.java | 6 +- .../facebook/presto/type/CharOperators.java | 6 +- .../presto/type/CharParametricType.java | 12 +- .../facebook/presto/type/CodePointsType.java | 12 +- .../facebook/presto/type/ColorOperators.java | 4 +- .../com/facebook/presto/type/ColorType.java | 8 +- .../facebook/presto/type/DateOperators.java | 12 +- .../presto/type/DateTimeOperators.java | 8 +- .../facebook/presto/type/DecimalCasts.java | 106 +++++++++--------- .../type/DecimalInequalityOperators.java | 12 +- .../presto/type/DecimalOperators.java | 30 ++--- .../presto/type/DecimalParametricType.java | 12 +- .../type/DecimalSaturatedFloorCasts.java | 18 +-- .../presto/type/DecimalToDecimalCasts.java | 22 ++-- .../facebook/presto/type/DoubleOperators.java | 8 +- .../presto/type/FunctionParametricType.java | 14 +-- .../presto/type/HyperLogLogOperators.java | 2 +- .../presto/type/IntegerOperators.java | 8 +- .../presto/type/IntervalDayTimeOperators.java | 6 +- .../presto/type/IntervalDayTimeType.java | 10 +- .../type/IntervalYearMonthOperators.java | 6 +- .../presto/type/IntervalYearMonthType.java | 10 +- .../presto/type/IpAddressOperators.java | 4 +- .../facebook/presto/type/IpAddressType.java | 22 ++-- .../presto/type/IpPrefixOperators.java | 4 +- .../facebook/presto/type/IpPrefixType.java | 20 ++-- .../facebook/presto/type/JoniRegexpType.java | 12 +- .../facebook/presto/type/JsonPathType.java | 12 +- .../facebook/presto/type/LikeFunctions.java | 4 +- .../facebook/presto/type/LikePatternType.java | 12 +- .../presto/type/MapParametricType.java | 18 +-- .../presto/type/QuantileDigestOperators.java | 2 +- .../com/facebook/presto/type/Re2JRegexp.java | 6 +- .../facebook/presto/type/Re2JRegexpType.java | 12 +- .../facebook/presto/type/RealOperators.java | 8 +- .../presto/type/RowParametricType.java | 22 ++-- .../presto/type/SmallintOperators.java | 8 +- .../presto/type/TDigestOperators.java | 2 +- .../facebook/presto/type/TimeOperators.java | 12 +- .../type/TimeWithTimeZoneOperators.java | 14 +-- .../presto/type/TimestampOperators.java | 12 +- .../type/TimestampWithTimeZoneOperators.java | 16 +-- .../presto/type/TinyintOperators.java | 8 +- .../presto/type/TypeDeserializer.java | 6 +- .../facebook/presto/type/TypeRegistry.java | 72 ++++++------ .../com/facebook/presto/type/TypeUtils.java | 18 +-- .../presto/type/UnknownOperators.java | 4 +- .../com/facebook/presto/type/UnknownType.java | 18 +-- .../presto/type/VarbinaryOperators.java | 4 +- .../presto/type/VarcharOperators.java | 4 +- .../presto/type/VarcharParametricType.java | 14 +-- .../KHyperLogLogAggregationFunction.java | 4 +- .../khyperloglog/KHyperLogLogFunctions.java | 12 +- .../khyperloglog/KHyperLogLogOperators.java | 2 +- .../KHyperLogLogStateSerializer.java | 6 +- .../type/khyperloglog/KHyperLogLogType.java | 12 +- .../MergeKHyperLogLogAggregationFunction.java | 2 +- .../setdigest/BuildSetDigestAggregation.java | 4 +- .../setdigest/MergeSetDigestAggregation.java | 2 +- .../type/setdigest/SetDigestFunctions.java | 12 +- .../type/setdigest/SetDigestOperators.java | 2 +- .../setdigest/SetDigestStateSerializer.java | 6 +- .../presto/type/setdigest/SetDigestType.java | 12 +- .../facebook/presto/util/DateTimeUtils.java | 4 +- .../presto/util/DateTimeZoneIndex.java | 12 +- .../presto/util/FastutilSetHelper.java | 2 +- .../presto/util/GenerateTimeZoneIndex.java | 2 +- .../com/facebook/presto/util/JsonUtil.java | 50 ++++----- .../util/LegacyRowFieldOrdinalAccessUtil.java | 2 +- .../presto/util/MergeSortedPages.java | 4 +- .../presto/BenchmarkPagesIndexPageSorter.java | 16 +-- .../com/facebook/presto/RowPageBuilder.java | 6 +- .../com/facebook/presto/RowPagesBuilder.java | 6 +- .../facebook/presto/SequencePageBuilder.java | 26 ++--- .../facebook/presto/TestHiddenColumns.java | 2 +- .../presto/TestPagesIndexPageSorter.java | 12 +- .../presto/block/AbstractTestBlock.java | 20 ++-- .../presto/block/BenchmarkMapCopy.java | 12 +- .../presto/block/BlockAssertions.java | 58 +++++----- .../presto/block/ColumnarTestUtils.java | 10 +- .../facebook/presto/block/TestArrayBlock.java | 14 +-- .../presto/block/TestBlockBuilder.java | 12 +- .../presto/block/TestByteArrayBlock.java | 6 +- .../presto/block/TestColumnarArray.java | 16 +-- .../presto/block/TestColumnarMap.java | 22 ++-- .../presto/block/TestColumnarRow.java | 18 +-- .../presto/block/TestDictionaryBlock.java | 10 +- .../presto/block/TestInt128ArrayBlock.java | 12 +- .../presto/block/TestIntArrayBlock.java | 6 +- .../presto/block/TestLongArrayBlock.java | 8 +- .../facebook/presto/block/TestMapBlock.java | 22 ++-- .../block/TestRowBasedSerialization.java | 18 +-- .../facebook/presto/block/TestRowBlock.java | 18 +-- .../block/TestRunLengthEncodedBlock.java | 18 +-- .../presto/block/TestShortArrayBlock.java | 6 +- .../presto/block/TestVariableWidthBlock.java | 12 +- .../connector/MockConnectorFactory.java | 2 +- .../presto/cost/PlanNodeStatsAssertion.java | 2 +- .../presto/cost/TestAggregationStatsRule.java | 2 +- .../cost/TestComparisonStatsCalculator.java | 6 +- .../presto/cost/TestCostCalculator.java | 6 +- .../presto/cost/TestExchangeStatsRule.java | 2 +- .../cost/TestFilterStatsCalculator.java | 4 +- .../presto/cost/TestFilterStatsRule.java | 2 +- .../presto/cost/TestIntersectStatsRule.java | 2 +- .../presto/cost/TestJoinStatsRule.java | 4 +- .../presto/cost/TestOutputNodeStats.java | 4 +- .../cost/TestPlanNodeStatsEstimateMath.java | 2 +- .../presto/cost/TestRowNumberStatsRule.java | 2 +- .../presto/cost/TestSampleStatsRule.java | 2 +- .../cost/TestScalarStatsCalculator.java | 10 +- .../cost/TestSemiJoinStatsCalculator.java | 2 +- .../presto/cost/TestSemiJoinStatsRule.java | 4 +- ...tSimpleFilterProjectSemiJoinStatsRule.java | 4 +- .../presto/cost/TestSortNodeStats.java | 4 +- .../presto/cost/TestStatsNormalizer.java | 20 ++-- .../presto/cost/TestUnionStatsRule.java | 2 +- .../presto/cost/TestUnnestStatsRule.java | 2 +- .../presto/cost/TestValuesNodeStats.java | 8 +- .../execution/MockRemoteTaskFactory.java | 2 +- .../presto/execution/TaskTestUtils.java | 4 +- .../presto/execution/TestCreateTableTask.java | 6 +- .../execution/TestPageSplitterUtil.java | 12 +- .../execution/TestQueryStateMachine.java | 4 +- .../presto/execution/TestSetSessionTask.java | 2 +- .../execution/TestSqlStageExecution.java | 2 +- .../execution/TestSqlTaskExecution.java | 6 +- .../execution/TestingPageSourceProvider.java | 4 +- .../execution/buffer/BufferTestUtils.java | 2 +- .../buffer/TestArbitraryOutputBuffer.java | 4 +- .../buffer/TestBroadcastOutputBuffer.java | 4 +- .../execution/buffer/TestClientBuffer.java | 4 +- .../execution/buffer/TestPagesSerde.java | 10 +- .../buffer/TestPartitionedOutputBuffer.java | 4 +- .../buffer/TestingPagesSerdeFactory.java | 4 +- .../TestPhasedExecutionSchedule.java | 2 +- .../TestSourcePartitionedScheduler.java | 2 +- .../memory/TestSystemMemoryBlocking.java | 4 +- .../presto/metadata/AbstractMockMetadata.java | 8 +- .../presto/metadata/TestFunctionManager.java | 16 +-- .../TestInformationSchemaMetadata.java | 2 +- .../TestPolymorphicScalarFunction.java | 16 +-- .../presto/metadata/TestSignature.java | 6 +- .../presto/metadata/TestSignatureBinder.java | 28 ++--- .../metadata/TestTableLayoutResult.java | 2 +- .../operator/BenchmarkBlockFlattener.java | 12 +- .../presto/operator/BenchmarkGroupByHash.java | 8 +- .../operator/BenchmarkGroupedTopNBuilder.java | 12 +- ...kHashAndStreamingAggregationOperators.java | 6 +- .../BenchmarkHashBuildAndJoinOperators.java | 6 +- .../presto/operator/BenchmarkReadBlock.java | 2 +- .../operator/BenchmarkUnnestOperator.java | 4 +- .../operator/BenchmarkWindowOperator.java | 8 +- .../presto/operator/GenericLongFunction.java | 6 +- .../operator/GroupByHashYieldAssertion.java | 4 +- .../presto/operator/OperatorAssertion.java | 10 +- .../presto/operator/PageAssertions.java | 8 +- .../operator/TestAggregationOperator.java | 10 +- .../TestAnnotationEngineForAggregates.java | 22 ++-- .../TestAnnotationEngineForScalars.java | 14 +-- .../operator/TestColumnarPageProcessor.java | 6 +- .../operator/TestDistinctLimitOperator.java | 6 +- .../facebook/presto/operator/TestDriver.java | 6 +- .../presto/operator/TestExchangeClient.java | 2 +- .../presto/operator/TestExchangeOperator.java | 4 +- .../TestFilterAndProjectOperator.java | 6 +- .../presto/operator/TestGroupByHash.java | 16 +-- .../presto/operator/TestGroupIdOperator.java | 6 +- .../operator/TestGroupedTopNBuilder.java | 8 +- .../operator/TestHashAggregationOperator.java | 20 ++-- .../presto/operator/TestHashJoinOperator.java | 6 +- .../operator/TestHashSemiJoinOperator.java | 8 +- .../presto/operator/TestLimitOperator.java | 2 +- .../operator/TestLookupJoinPageBuilder.java | 10 +- .../operator/TestMarkDistinctOperator.java | 8 +- .../presto/operator/TestMergeHashSort.java | 2 +- .../presto/operator/TestMergeOperator.java | 12 +- .../operator/TestNestedLoopBuildOperator.java | 4 +- .../operator/TestNestedLoopJoinOperator.java | 6 +- .../presto/operator/TestOrderByOperator.java | 10 +- .../presto/operator/TestPagesIndex.java | 6 +- .../TestPartitionedOutputOperator.java | 8 +- .../presto/operator/TestPositionLinks.java | 2 +- .../operator/TestRealAverageAggregation.java | 8 +- .../operator/TestRowNumberOperator.java | 12 +- .../TestScanFilterAndProjectOperator.java | 12 +- .../TestStreamingAggregationOperator.java | 6 +- .../operator/TestTableFinishOperator.java | 10 +- .../operator/TestTableWriterOperator.java | 8 +- .../presto/operator/TestTopNOperator.java | 10 +- .../operator/TestTopNRowNumberOperator.java | 8 +- .../presto/operator/TestWindowOperator.java | 12 +- .../presto/operator/TestingTaskBuffer.java | 4 +- .../AbstractTestAggregationFunction.java | 10 +- .../AbstractTestApproximateCountDistinct.java | 8 +- ...AbstractTestDecimalAverageAggregation.java | 8 +- .../AbstractTestDecimalSumAggregation.java | 8 +- .../aggregation/AggregationTestUtils.java | 10 +- .../BenchmarkArrayAggregation.java | 14 +-- .../BenchmarkGroupedTypedHistogram.java | 4 +- .../TestApproximateCountDistinctBoolean.java | 6 +- .../TestApproximateCountDistinctDouble.java | 4 +- .../TestApproximateCountDistinctInteger.java | 6 +- ...TestApproximateCountDistinctIpAddress.java | 4 +- .../TestApproximateCountDistinctLong.java | 6 +- ...stApproximateCountDistinctLongDecimal.java | 8 +- .../TestApproximateCountDistinctSmallint.java | 6 +- .../TestApproximateCountDistinctTinyint.java | 6 +- ...TestApproximateCountDistinctVarBinary.java | 6 +- .../TestApproximatePercentileAggregation.java | 14 +-- .../aggregation/TestArbitraryAggregation.java | 14 +-- .../aggregation/TestArrayAggregation.java | 18 +-- .../aggregation/TestArrayMaxNAggregation.java | 10 +- .../aggregation/TestArrayMinAggregation.java | 8 +- .../TestBitwiseAndAggregation.java | 8 +- .../aggregation/TestBitwiseOrAggregation.java | 8 +- .../TestBooleanAndAggregation.java | 8 +- .../aggregation/TestBooleanOrAggregation.java | 8 +- .../aggregation/TestChecksumAggregation.java | 20 ++-- .../aggregation/TestCountAggregation.java | 6 +- .../TestCountColumnAggregation.java | 8 +- .../aggregation/TestCountIfAggregation.java | 8 +- .../aggregation/TestCountNullAggregation.java | 8 +- .../aggregation/TestDateMaxAggregation.java | 10 +- .../TestDecimalAverageAggregation.java | 10 +- .../TestDecimalSumAggregation.java | 12 +- .../TestDoubleAverageAggregation.java | 8 +- .../TestDoubleCorrelationAggregation.java | 4 +- .../TestDoubleCovariancePopAggregation.java | 4 +- .../TestDoubleCovarianceSampAggregation.java | 4 +- .../TestDoubleGeometricMeanAggregation.java | 8 +- .../TestDoubleHistogramAggregation.java | 8 +- .../TestDoubleKurtosisAggregation.java | 8 +- .../aggregation/TestDoubleMaxAggregation.java | 8 +- .../aggregation/TestDoubleMinAggregation.java | 8 +- .../TestDoubleMinNAggregation.java | 4 +- .../TestDoubleRegrInterceptAggregation.java | 4 +- .../TestDoubleRegrSlopeAggregation.java | 4 +- .../TestDoubleSkewnessAggregation.java | 8 +- .../TestDoubleStdDevAggregation.java | 8 +- .../TestDoubleStdDevPopAggregation.java | 8 +- .../aggregation/TestDoubleSumAggregation.java | 8 +- .../TestDoubleVarianceAggregation.java | 8 +- .../TestDoubleVariancePopAggregation.java | 8 +- .../aggregation/TestEntropyAggregation.java | 8 +- .../operator/aggregation/TestHistogram.java | 30 ++--- ...IntervalDayToSecondAverageAggregation.java | 6 +- ...TestIntervalDayToSecondSumAggregation.java | 6 +- ...IntervalYearToMonthAverageAggregation.java | 6 +- ...TestIntervalYearToMonthSumAggregation.java | 6 +- .../TestLongAverageAggregation.java | 8 +- .../TestLongDecimalAverageAggregation.java | 8 +- .../TestLongDecimalMaxAggregation.java | 10 +- .../TestLongDecimalMinAggregation.java | 10 +- .../TestLongDecimalSumAggregation.java | 8 +- ...tLongGeometricMeanAggregationFunction.java | 8 +- .../TestLongKurtosisAggregation.java | 8 +- .../aggregation/TestLongMaxAggregation.java | 8 +- .../aggregation/TestLongMaxNAggregation.java | 4 +- .../aggregation/TestLongMinAggregation.java | 8 +- .../TestLongSkewnessAggregation.java | 8 +- .../TestLongStdDevAggregation.java | 8 +- .../TestLongStdDevPopAggregation.java | 8 +- .../aggregation/TestLongSumAggregation.java | 8 +- .../TestLongVarianceAggregation.java | 8 +- .../TestLongVariancePopAggregation.java | 8 +- .../aggregation/TestMapAggAggregation.java | 18 +-- .../aggregation/TestMapUnionAggregation.java | 12 +- .../TestMergeHyperLogLogAggregation.java | 10 +- .../TestMergeQuantileDigestFunction.java | 14 +-- .../aggregation/TestMergeTDigestFunction.java | 14 +-- .../TestMultimapAggAggregation.java | 16 +-- .../TestPrecisionRecallAggregation.java | 12 +- ...TestQuantileDigestAggregationFunction.java | 16 +-- .../TestRealCorrelationAggregation.java | 4 +- .../TestRealCovariancePopAggregation.java | 4 +- .../TestRealCovarianceSampAggregation.java | 4 +- .../TestRealGeometricMeanAggregation.java | 8 +- .../TestRealHistogramAggregation.java | 10 +- .../TestRealRegrInterceptAggregation.java | 4 +- .../TestRealRegrSlopeAggregation.java | 4 +- .../aggregation/TestRealSumAggregation.java | 8 +- .../TestShortDecimalAverageAggregation.java | 6 +- .../TestShortDecimalMaxAggregation.java | 8 +- .../TestShortDecimalMinAggregation.java | 8 +- .../TestShortDecimalSumAggregation.java | 6 +- .../aggregation/TestStateCompiler.java | 24 ++-- ...tStatisticalDigestAggregationFunction.java | 14 +-- .../TestTDigestAggregationFunction.java | 12 +- .../operator/aggregation/TestTypedHeap.java | 6 +- .../aggregation/TestTypedHistogram.java | 8 +- .../aggregation/TestTypedKeyValueHeap.java | 8 +- .../operator/aggregation/TestTypedSet.java | 8 +- .../TestUnknownMaxAggregation.java | 4 +- .../TestUnknownMinAggregation.java | 4 +- .../TestVarBinaryMaxAggregation.java | 8 +- .../TestVarBinaryMinAggregation.java | 8 +- ...AbstractTestFixedHistogramAggregation.java | 8 +- .../TestIllegalMethodAggregation.java | 6 +- .../TestUnweightedReservoirAggregation.java | 8 +- .../TestWeightedReservoirAggregation.java | 8 +- .../AggregationTestInputBuilder.java | 2 +- .../AggregationTestOutput.java | 2 +- .../GroupByAggregationTestUtils.java | 2 +- .../aggregation/histogram/TestValueStore.java | 6 +- .../minmaxby/TestMinMaxByAggregation.java | 20 ++-- .../minmaxby/TestMinMaxByNAggregation.java | 10 +- .../operator/exchange/TestLocalExchange.java | 4 +- .../index/TestFieldSetFilteringRecordSet.java | 12 +- .../index/TestTupleFilterProcessor.java | 10 +- ...enchmarkDictionaryBlockGetSizeInBytes.java | 14 +-- .../TestDictionaryAwarePageFilter.java | 12 +- .../TestDictionaryAwarePageProjection.java | 18 +-- .../project/TestMergingPageOutput.java | 8 +- .../operator/project/TestPageProcessor.java | 14 +-- .../BenchmarkPartitionedOutputOperator.java | 20 ++-- .../repartition/TestBlockEncodingBuffers.java | 44 ++++---- ...estOptimizedPartitionedOutputOperator.java | 26 ++--- .../scalar/AbstractTestFunctions.java | 17 +-- .../scalar/AbstractTestRegexpFunctions.java | 10 +- .../scalar/BenchmarkArrayDistinct.java | 10 +- .../operator/scalar/BenchmarkArrayFilter.java | 18 +-- .../BenchmarkArrayHashCodeOperator.java | 20 ++-- .../scalar/BenchmarkArrayIntersect.java | 16 +-- .../operator/scalar/BenchmarkArrayJoin.java | 10 +- .../operator/scalar/BenchmarkArraySort.java | 10 +- .../scalar/BenchmarkArraySubscript.java | 18 +-- .../scalar/BenchmarkArrayTransform.java | 14 +-- .../scalar/BenchmarkEqualsOperator.java | 8 +- .../scalar/BenchmarkJsonToArrayCast.java | 16 +-- .../scalar/BenchmarkJsonToMapCast.java | 14 +-- .../operator/scalar/BenchmarkMapConcat.java | 12 +- .../scalar/BenchmarkMapSubscript.java | 14 +-- .../scalar/BenchmarkMapToMapCast.java | 10 +- .../scalar/BenchmarkRoundFunction.java | 2 +- .../scalar/BenchmarkRowToRowCast.java | 16 +-- .../scalar/BenchmarkTransformKey.java | 16 +-- .../scalar/BenchmarkTransformValue.java | 20 ++-- .../ConstructorWithInvalidTypeParameters.java | 4 +- .../ConstructorWithValidTypeParameters.java | 4 +- .../operator/scalar/CustomFunctions.java | 2 +- .../operator/scalar/FunctionAssertions.java | 35 +++--- .../scalar/TestArrayCombinationsFunction.java | 12 +- .../scalar/TestArrayExceptFunction.java | 12 +- .../scalar/TestArrayFilterFunction.java | 10 +- .../operator/scalar/TestArrayFunctions.java | 6 +- .../scalar/TestArrayIntersectFunction.java | 12 +- .../scalar/TestArrayMatchFunctions.java | 2 +- .../scalar/TestArrayNgramsFunction.java | 10 +- .../scalar/TestArrayReduceFunction.java | 10 +- .../scalar/TestArraySortFunction.java | 8 +- .../scalar/TestArrayTransformFunction.java | 20 ++-- .../operator/scalar/TestBitwiseFunctions.java | 2 +- .../TestBlockAndPositionNullConvention.java | 16 +-- .../operator/scalar/TestColorFunctions.java | 2 +- .../operator/scalar/TestConditions.java | 12 +- .../operator/scalar/TestCustomFunctions.java | 4 +- .../scalar/TestDataSizeFunctions.java | 4 +- .../scalar/TestDateTimeFunctions.java | 10 +- .../scalar/TestDateTimeFunctionsBase.java | 45 ++++---- .../scalar/TestDateTimeFunctionsLegacy.java | 12 +- .../scalar/TestHyperLogLogFunctions.java | 4 +- .../scalar/TestIpPrefixFunctions.java | 4 +- .../operator/scalar/TestIsNullAnnotation.java | 10 +- .../operator/scalar/TestJsonExtract.java | 2 +- .../operator/scalar/TestJsonFunctions.java | 8 +- .../operator/scalar/TestJsonHashTable.java | 6 +- .../operator/scalar/TestLambdaExpression.java | 20 ++-- .../scalar/TestMapFilterFunction.java | 14 +-- .../scalar/TestMapTransformKeyFunction.java | 14 +-- .../scalar/TestMapTransformValueFunction.java | 14 +-- .../scalar/TestMapZipWithFunction.java | 14 +-- .../operator/scalar/TestMathFunctions.java | 22 ++-- .../scalar/TestOperatorValidation.java | 2 +- .../scalar/TestPageProcessorCompiler.java | 12 +- ...ametricScalarImplementationValidation.java | 2 +- ...idedBlockBuilderReturnPlaceConvention.java | 22 ++-- .../scalar/TestQuantileDigestFunctions.java | 10 +- .../operator/scalar/TestScalarParser.java | 14 +-- .../operator/scalar/TestScalarValidation.java | 6 +- .../operator/scalar/TestStringFunctions.java | 24 ++-- .../operator/scalar/TestTDigestFunctions.java | 8 +- .../operator/scalar/TestTryFunction.java | 18 +-- .../operator/scalar/TestTypeOfFunction.java | 2 +- .../operator/scalar/TestUrlFunctions.java | 4 +- .../scalar/TestVarbinaryFunctions.java | 18 +-- .../operator/scalar/TestWordStemFunction.java | 2 +- .../operator/scalar/TestZipFunction.java | 12 +- .../operator/scalar/TestZipWithFunction.java | 14 +-- .../spiller/BenchmarkBinaryFileSpiller.java | 12 +- .../operator/unnest/BenchmarkCopyBlock.java | 12 +- .../operator/unnest/TestUnnestOperator.java | 26 ++--- .../operator/unnest/TestUnnesterUtil.java | 20 ++-- .../window/TestAggregateWindowFunction.java | 6 +- .../window/TestApproxPercentileWindow.java | 10 +- .../TestCumulativeDistributionFunction.java | 8 +- .../window/TestDenseRankFunction.java | 6 +- .../window/TestFirstValueFunction.java | 6 +- .../operator/window/TestLagFunction.java | 6 +- .../window/TestLastValueFunction.java | 6 +- .../operator/window/TestLeadFunction.java | 6 +- .../operator/window/TestMapAggFunction.java | 4 +- .../TestMultipleWindowSpecifications.java | 4 +- .../operator/window/TestNTileFunction.java | 4 +- .../operator/window/TestNthValueFunction.java | 6 +- .../window/TestPercentRankFunction.java | 8 +- .../operator/window/TestRankFunction.java | 6 +- .../window/TestRowNumberFunction.java | 6 +- .../server/TestQuerySessionSupplier.java | 6 +- .../facebook/presto/server/TestServer.java | 11 +- .../server/remotetask/TestHttpRemoteTask.java | 4 +- .../presto/spiller/TestBinaryFileSpiller.java | 14 +-- .../spiller/TestFileSingleStreamSpiller.java | 10 +- .../TestFileSingleStreamSpillerFactory.java | 8 +- .../TestGenericPartitioningSpiller.java | 10 +- .../spiller/TestSpillCipherPagesSerde.java | 6 +- .../presto/sql/TestExpressionInterpreter.java | 38 +++---- .../presto/sql/TestLikeFunctions.java | 2 +- .../presto/sql/TestRowExpressionSerde.java | 38 +++---- .../sql/TestSqlToRowExpressionTranslator.java | 8 +- .../sql/TestingRowExpressionTranslator.java | 2 +- .../presto/sql/analyzer/TestAnalyzer.java | 10 +- .../presto/sql/analyzer/TestScope.java | 2 +- .../sql/gen/BenchmarkPageProcessor.java | 10 +- .../sql/gen/CommonSubExpressionBenchmark.java | 10 +- .../sql/gen/InCodeGeneratorBenchmark.java | 12 +- .../sql/gen/PageProcessorBenchmark.java | 6 +- .../gen/TestCommonSubExpressionRewritter.java | 4 +- .../sql/gen/TestExpressionCompiler.java | 42 +++---- .../presto/sql/gen/TestInCodeGenerator.java | 10 +- .../presto/sql/gen/TestJoinCompiler.java | 12 +- .../sql/gen/TestPageFunctionCompiler.java | 8 +- .../TestRowExpressionPredicateCompiler.java | 8 +- .../TestVarArgsToArrayAdapterGenerator.java | 4 +- .../presto/sql/planner/TestCanonicalize.java | 2 +- .../TestEffectivePredicateExtractor.java | 4 +- .../sql/planner/TestEqualityInference.java | 2 +- .../TestExpressionDomainTranslator.java | 34 +++--- .../sql/planner/TestLogicalPlanner.java | 6 +- .../sql/planner/TestNullabilityAnalyzer.java | 10 +- .../sql/planner/TestPredicatePushdown.java | 2 +- .../TestRowExpressionDomainTranslator.java | 34 +++--- .../TestRowExpressionEqualityInference.java | 10 +- .../planner/TestRowExpressionFormatter.java | 36 +++--- .../TestRowExpressionPredicateExtractor.java | 8 +- .../planner/TestRowExpressionRewriter.java | 4 +- .../TestRowExpressionVariableInliner.java | 2 +- .../planner/TestSortExpressionExtractor.java | 2 +- .../presto/sql/planner/TestTypeValidator.java | 14 +-- .../sql/planner/TestVariableAllocator.java | 2 +- .../sql/planner/TestVariableExtractor.java | 2 +- .../assertions/EquiJoinClauseProvider.java | 2 +- .../planner/assertions/PlanMatchPattern.java | 10 +- .../assertions/SpecificationProvider.java | 2 +- .../assertions/TestExpressionVerifier.java | 2 +- .../assertions/TopNRowNumberMatcher.java | 2 +- .../presto/sql/planner/assertions/Util.java | 2 +- .../assertions/WindowFrameProvider.java | 2 +- .../sql/planner/assertions/WindowMatcher.java | 2 +- .../rule/TestAddIntermediateAggregations.java | 2 +- .../TestDetermineJoinDistributionType.java | 2 +- ...TestDetermineSemiJoinDistributionType.java | 2 +- .../rule/TestEliminateCrossJoins.java | 2 +- .../iterative/rule/TestEvaluateZeroLimit.java | 2 +- .../rule/TestEvaluateZeroSample.java | 2 +- .../rule/TestExpressionRewriteRuleSet.java | 4 +- .../iterative/rule/TestJoinNodeFlattener.java | 4 +- .../TestLambdaCaptureDesugaringRewriter.java | 2 +- .../rule/TestMergeAdjacentWindows.java | 4 +- ...ipleDistinctAggregationToMarkDistinct.java | 2 +- .../iterative/rule/TestPickTableLayout.java | 6 +- .../TestPruneAggregationSourceColumns.java | 2 +- .../TestPruneCountAggregationOverScalar.java | 4 +- .../rule/TestPruneIndexSourceColumns.java | 4 +- .../rule/TestPruneOrderByInAggregation.java | 2 +- .../rule/TestPruneTableScanColumns.java | 4 +- .../rule/TestPruneValuesColumns.java | 2 +- .../rule/TestPruneWindowColumns.java | 4 +- .../TestPushAggregationThroughOuterJoin.java | 4 +- ...TestPushPartialAggregationThroughJoin.java | 2 +- .../TestPushProjectionThroughExchange.java | 4 +- .../rule/TestPushTableWriteThroughUnion.java | 2 +- .../iterative/rule/TestRemoveEmptyDelete.java | 2 +- .../iterative/rule/TestRemoveFullSample.java | 2 +- .../rule/TestRemoveTrivialFilters.java | 2 +- ...tRemoveUnreferencedScalarLateralNodes.java | 2 +- .../iterative/rule/TestReorderJoins.java | 4 +- .../rule/TestSimplifyExpressions.java | 4 +- ...estSingleDistinctAggregationToGroupBy.java | 4 +- ...stSwapAdjacentWindowsBySpecifications.java | 4 +- ...formCorrelatedScalarAggregationToJoin.java | 2 +- ...TestTransformCorrelatedScalarSubquery.java | 4 +- ...mCorrelatedSingleRowSubqueryToProject.java | 2 +- ...TestTransformExistsApplyToLateralJoin.java | 2 +- .../rule/TestTranslateExpressions.java | 6 +- .../iterative/rule/test/PlanBuilder.java | 8 +- .../iterative/rule/test/TestRuleTester.java | 2 +- .../optimizations/TestAddExchanges.java | 6 +- .../TestConnectorOptimization.java | 2 +- .../optimizations/TestEliminateSorts.java | 2 +- .../TestExpressionEquivalence.java | 4 +- .../optimizations/TestLocalProperties.java | 2 +- .../optimizations/TestMergeWindows.java | 2 +- .../optimizations/TestReorderWindows.java | 2 +- .../sql/planner/plan/TestAssignments.java | 2 +- .../plan/TestStatisticsWriterNode.java | 6 +- .../sql/planner/plan/TestWindowNode.java | 8 +- ...ValidateAggregationsWithDefaultValues.java | 2 +- .../TestValidateStreamingAggregations.java | 2 +- .../TestVerifyNoOriginalExpression.java | 6 +- .../sanity/TestVerifyOnlyOneOutputNode.java | 2 +- .../relational/TestDeterminismEvaluator.java | 4 +- .../relational/TestFunctionResolution.java | 8 +- .../relational/TestLogicalRowExpressions.java | 10 +- .../TestRowExpressionOptimizer.java | 20 ++-- .../TestRowExpressionTranslator.java | 8 +- .../sql/relational/TestSubExpressions.java | 4 +- .../presto/type/AbstractTestType.java | 24 ++-- .../presto/type/BenchmarkBigIntOperators.java | 2 +- .../type/BenchmarkDecimalOperators.java | 16 +-- .../presto/type/TestArrayOperators.java | 46 ++++---- .../presto/type/TestBigintArrayType.java | 10 +- .../presto/type/TestBigintOperators.java | 10 +- .../facebook/presto/type/TestBigintType.java | 6 +- .../presto/type/TestBigintVarcharMapType.java | 10 +- .../presto/type/TestBooleanOperators.java | 6 +- .../facebook/presto/type/TestBooleanType.java | 6 +- .../presto/type/TestCharOperators.java | 2 +- .../presto/type/TestCharParametricType.java | 2 +- .../facebook/presto/type/TestCharType.java | 8 +- .../presto/type/TestCharacterStringCasts.java | 6 +- .../presto/type/TestColorArrayType.java | 8 +- .../facebook/presto/type/TestColorType.java | 4 +- .../type/TestConventionDependencies.java | 6 +- .../facebook/presto/type/TestDateBase.java | 18 +-- .../presto/type/TestDateTimeOperators.java | 14 +-- .../type/TestDateTimeOperatorsBase.java | 26 ++--- .../type/TestDateTimeOperatorsLegacy.java | 14 +-- .../facebook/presto/type/TestDateType.java | 8 +- .../presto/type/TestDecimalCasts.java | 16 +-- .../presto/type/TestDecimalOperators.java | 4 +- .../presto/type/TestDoubleOperators.java | 10 +- .../facebook/presto/type/TestDoubleType.java | 8 +- .../presto/type/TestFunctionType.java | 6 +- .../presto/type/TestInstanceFunction.java | 4 +- .../presto/type/TestIntegerArrayType.java | 10 +- .../presto/type/TestIntegerOperators.java | 16 +-- .../facebook/presto/type/TestIntegerType.java | 6 +- .../type/TestIntegerVarcharMapType.java | 10 +- .../presto/type/TestIntervalDayTime.java | 6 +- .../presto/type/TestIntervalDayTimeType.java | 4 +- .../presto/type/TestIntervalYearMonth.java | 6 +- .../type/TestIntervalYearMonthType.java | 4 +- .../presto/type/TestIpAddressOperators.java | 14 +-- .../presto/type/TestIpAddressType.java | 4 +- .../presto/type/TestIpPrefixOperators.java | 10 +- .../presto/type/TestIpPrefixType.java | 4 +- .../presto/type/TestJsonOperators.java | 26 ++--- .../facebook/presto/type/TestJsonType.java | 6 +- .../presto/type/TestLegacyMapSubscript.java | 2 +- .../presto/type/TestLongDecimalType.java | 16 +-- .../presto/type/TestMapOperators.java | 42 +++---- .../presto/type/TestRealOperators.java | 16 +-- .../facebook/presto/type/TestRealType.java | 8 +- .../presto/type/TestRowOperators.java | 36 +++--- .../presto/type/TestRowParametricType.java | 20 ++-- .../presto/type/TestShortDecimalType.java | 10 +- .../presto/type/TestSimpleRowType.java | 14 +-- .../presto/type/TestSmallintArrayType.java | 10 +- .../presto/type/TestSmallintOperators.java | 16 +-- .../presto/type/TestSmallintType.java | 6 +- .../type/TestSmallintVarcharMapType.java | 10 +- .../facebook/presto/type/TestTimeBase.java | 20 ++-- .../facebook/presto/type/TestTimeType.java | 8 +- .../presto/type/TestTimeWithTimeZone.java | 4 +- .../presto/type/TestTimeWithTimeZoneBase.java | 18 +-- .../type/TestTimeWithTimeZoneLegacy.java | 4 +- .../presto/type/TestTimeWithTimeZoneType.java | 14 +-- .../facebook/presto/type/TestTimestamp.java | 2 +- .../presto/type/TestTimestampBase.java | 26 ++--- .../presto/type/TestTimestampLegacy.java | 2 +- .../presto/type/TestTimestampType.java | 8 +- .../type/TestTimestampWithTimeZone.java | 6 +- .../type/TestTimestampWithTimeZoneBase.java | 22 ++-- .../type/TestTimestampWithTimeZoneLegacy.java | 4 +- .../type/TestTimestampWithTimeZoneType.java | 14 +-- .../presto/type/TestTinyintArrayType.java | 10 +- .../presto/type/TestTinyintOperators.java | 16 +-- .../facebook/presto/type/TestTinyintType.java | 6 +- .../type/TestTinyintVarcharMapType.java | 10 +- .../presto/type/TestTypeRegistry.java | 42 +++---- .../presto/type/TestUnknownOperators.java | 8 +- .../presto/type/TestVarbinaryType.java | 8 +- .../presto/type/TestVarcharOperators.java | 6 +- .../facebook/presto/type/TestVarcharType.java | 6 +- .../TestKHyperLogLogAggregationFunction.java | 12 +- .../TestKHyperLogLogFunctions.java | 6 +- .../presto/util/InfiniteRecordSet.java | 2 +- .../presto/util/PagesSortBenchmark.java | 10 +- .../presto/util/StructuralTestUtil.java | 20 ++-- .../presto/util/TestMergeSortedPages.java | 18 +-- .../presto/util/TestTimeZoneUtils.java | 6 +- .../plugin/memory/MemoryColumnHandle.java | 2 +- .../presto/plugin/memory/MemoryModule.java | 2 +- .../plugin/memory/MemoryPagesStore.java | 2 +- .../plugin/memory/TestMemoryMetadata.java | 2 +- .../plugin/memory/TestMemoryPagesStore.java | 4 +- ...luateClassifierPredictionsAggregation.java | 6 +- ...eClassifierPredictionsStateSerializer.java | 8 +- .../presto/ml/LearnClassifierAggregation.java | 8 +- .../ml/LearnLibSvmClassifierAggregation.java | 10 +- .../ml/LearnLibSvmRegressorAggregation.java | 10 +- ...arnLibSvmVarcharClassifierAggregation.java | 6 +- .../presto/ml/LearnRegressorAggregation.java | 8 +- .../presto/ml/LearnStateSerializer.java | 8 +- .../ml/LearnVarcharClassifierAggregation.java | 6 +- .../presto/ml/MLFeaturesFunctions.java | 12 +- .../com/facebook/presto/ml/MLFunctions.java | 4 +- .../java/com/facebook/presto/ml/MLPlugin.java | 4 +- .../com/facebook/presto/ml/ModelUtils.java | 6 +- .../ml/type/ClassifierParametricType.java | 10 +- .../presto/ml/type/ClassifierType.java | 10 +- .../facebook/presto/ml/type/ModelType.java | 10 +- .../presto/ml/type/RegressorType.java | 2 +- .../ml/TestEvaluateClassifierPredictions.java | 8 +- .../presto/ml/TestLearnAggregations.java | 20 ++-- .../com/facebook/presto/ml/TestMLQueries.java | 4 +- .../presto/mongodb/MongoClientModule.java | 2 +- .../presto/mongodb/MongoColumnHandle.java | 2 +- .../presto/mongodb/MongoConnectorFactory.java | 2 +- .../facebook/presto/mongodb/MongoIndex.java | 2 +- .../presto/mongodb/MongoPageSink.java | 38 +++---- .../presto/mongodb/MongoPageSource.java | 22 ++-- .../facebook/presto/mongodb/MongoPlugin.java | 2 +- .../facebook/presto/mongodb/MongoSession.java | 24 ++-- .../presto/mongodb/ObjectIdFunctions.java | 2 +- .../facebook/presto/mongodb/ObjectIdType.java | 12 +- .../facebook/presto/mongodb/TypeUtils.java | 12 +- .../presto/mongodb/TestMongoPlugin.java | 2 +- .../presto/mongodb/TestMongoSession.java | 4 +- .../presto/plugin/mysql/MySqlClient.java | 16 +-- .../mysql/TestMySqlDistributedQueries.java | 2 +- .../mysql/TestMySqlIntegrationSmokeTest.java | 2 +- .../plugin/mysql/TestMySqlTypeMapping.java | 10 +- .../presto/orc/AbstractOrcRecordReader.java | 6 +- .../facebook/presto/orc/FilterFunction.java | 6 +- .../presto/orc/OrcBatchRecordReader.java | 4 +- .../com/facebook/presto/orc/OrcReader.java | 4 +- .../presto/orc/OrcSelectiveRecordReader.java | 36 +++--- .../presto/orc/OrcWriteValidation.java | 48 ++++---- .../com/facebook/presto/orc/OrcWriter.java | 2 +- .../presto/orc/TupleDomainFilter.java | 2 +- .../presto/orc/TupleDomainFilterUtils.java | 26 ++--- .../presto/orc/TupleDomainOrcPredicate.java | 38 +++---- .../com/facebook/presto/orc/array/Arrays.java | 2 +- .../facebook/presto/orc/metadata/OrcType.java | 36 +++--- .../statistics/BooleanStatisticsBuilder.java | 4 +- .../statistics/DoubleStatisticsBuilder.java | 6 +- .../LongDecimalStatisticsBuilder.java | 8 +- .../LongValueStatisticsBuilder.java | 4 +- .../SliceColumnStatisticsBuilder.java | 4 +- .../statistics/StatisticsBuilder.java | 4 +- .../AbstractDecimalSelectiveStreamReader.java | 10 +- .../AbstractLongSelectiveStreamReader.java | 22 ++-- .../presto/orc/reader/BatchStreamReader.java | 2 +- .../presto/orc/reader/BatchStreamReaders.java | 2 +- .../orc/reader/BooleanBatchStreamReader.java | 12 +- .../reader/BooleanSelectiveStreamReader.java | 12 +- .../orc/reader/ByteBatchStreamReader.java | 12 +- .../orc/reader/ByteSelectiveStreamReader.java | 12 +- .../orc/reader/DecimalBatchStreamReader.java | 16 +-- .../orc/reader/DoubleBatchStreamReader.java | 12 +- .../reader/DoubleSelectiveStreamReader.java | 12 +- .../orc/reader/FloatBatchStreamReader.java | 12 +- .../reader/FloatSelectiveStreamReader.java | 12 +- .../orc/reader/ListBatchStreamReader.java | 8 +- .../orc/reader/ListSelectiveStreamReader.java | 14 +-- .../orc/reader/LongBatchStreamReader.java | 4 +- .../LongDecimalSelectiveStreamReader.java | 10 +- .../LongDictionaryBatchStreamReader.java | 14 +-- .../LongDictionarySelectiveStreamReader.java | 6 +- .../reader/LongDirectBatchStreamReader.java | 20 ++-- .../LongDirectSelectiveStreamReader.java | 10 +- .../orc/reader/LongSelectiveStreamReader.java | 6 +- .../orc/reader/MapBatchStreamReader.java | 4 +- .../reader/MapDirectBatchStreamReader.java | 6 +- .../MapDirectSelectiveStreamReader.java | 12 +- .../orc/reader/MapFlatBatchStreamReader.java | 20 ++-- .../reader/MapFlatSelectiveStreamReader.java | 26 ++--- .../orc/reader/MapSelectiveStreamReader.java | 6 +- .../presto/orc/reader/ReaderUtils.java | 2 +- .../orc/reader/SelectiveStreamReader.java | 4 +- .../orc/reader/SelectiveStreamReaders.java | 36 +++--- .../ShortDecimalSelectiveStreamReader.java | 8 +- .../orc/reader/SliceBatchStreamReader.java | 20 ++-- .../SliceDictionaryBatchStreamReader.java | 6 +- .../SliceDictionarySelectiveReader.java | 16 +-- .../reader/SliceDirectBatchStreamReader.java | 6 +- .../SliceDirectSelectiveStreamReader.java | 12 +- .../reader/SliceSelectiveStreamReader.java | 10 +- .../orc/reader/StructBatchStreamReader.java | 12 +- .../reader/StructSelectiveStreamReader.java | 16 +-- .../reader/TimestampBatchStreamReader.java | 12 +- .../TimestampSelectiveStreamReader.java | 12 +- .../presto/orc/stream/DecimalInputStream.java | 8 +- .../orc/stream/DecimalOutputStream.java | 2 +- .../presto/orc/stream/DoubleInputStream.java | 4 +- .../presto/orc/stream/FloatInputStream.java | 4 +- .../orc/writer/BooleanColumnWriter.java | 4 +- .../presto/orc/writer/ByteColumnWriter.java | 4 +- .../presto/orc/writer/ColumnWriter.java | 2 +- .../presto/orc/writer/ColumnWriters.java | 2 +- .../orc/writer/DecimalColumnWriter.java | 8 +- .../presto/orc/writer/DictionaryBuilder.java | 8 +- .../presto/orc/writer/DoubleColumnWriter.java | 4 +- .../presto/orc/writer/FloatColumnWriter.java | 4 +- .../presto/orc/writer/ListColumnWriter.java | 6 +- .../presto/orc/writer/LongColumnWriter.java | 4 +- .../presto/orc/writer/MapColumnWriter.java | 6 +- .../writer/SliceDictionaryColumnWriter.java | 6 +- .../orc/writer/SliceDirectColumnWriter.java | 4 +- .../presto/orc/writer/StructColumnWriter.java | 6 +- .../orc/writer/TimestampColumnWriter.java | 4 +- .../presto/orc/AbstractTestOrcReader.java | 34 +++--- .../orc/BenchmarkBatchStreamReaders.java | 16 +-- .../BenchmarkBatchStreamReadersWithZstd.java | 16 +-- .../orc/BenchmarkSelectiveStreamReaders.java | 40 +++---- .../com/facebook/presto/orc/OrcTester.java | 68 +++++------ .../presto/orc/TestCachingOrcDataSource.java | 4 +- .../presto/orc/TestDictionaryBuilder.java | 2 +- .../presto/orc/TestFilterFunction.java | 8 +- .../orc/TestMapFlatBatchStreamReader.java | 38 +++---- .../orc/TestMapFlatSelectiveStreamReader.java | 40 +++---- .../presto/orc/TestOrcBloomFilters.java | 16 +-- .../com/facebook/presto/orc/TestOrcLz4.java | 8 +- .../presto/orc/TestOrcReaderMemoryUsage.java | 16 +-- .../presto/orc/TestOrcReaderPositions.java | 6 +- .../facebook/presto/orc/TestOrcWriter.java | 6 +- .../presto/orc/TestReadBloomFilter.java | 18 +-- .../presto/orc/TestSelectiveOrcReader.java | 38 +++---- .../orc/TestSliceDictionaryColumnWriter.java | 6 +- .../orc/TestStructBatchStreamReader.java | 20 ++-- .../presto/orc/TestTupleDomainFilter.java | 2 +- .../orc/TestTupleDomainFilterUtils.java | 48 ++++---- .../orc/TestTupleDomainOrcPredicate.java | 22 ++-- .../presto/orc/TestingOrcPredicate.java | 40 +++---- .../presto/orc/stream/TestDecimalStream.java | 8 +- .../orc/stream/TestLongDecimalStream.java | 2 +- .../orc/stream/TestShortDecimalStream.java | 2 +- .../com/facebook/presto/parquet/Field.java | 2 +- .../facebook/presto/parquet/GroupField.java | 2 +- .../presto/parquet/ParquetTypeUtils.java | 4 +- .../presto/parquet/PrimitiveField.java | 2 +- .../parquet/predicate/PredicateUtils.java | 8 +- .../TupleDomainParquetPredicate.java | 20 ++-- .../parquet/reader/BinaryColumnReader.java | 12 +- .../parquet/reader/BooleanColumnReader.java | 4 +- .../presto/parquet/reader/ColumnChunk.java | 2 +- .../reader/DecimalColumnReaderFactory.java | 2 +- .../parquet/reader/DoubleColumnReader.java | 4 +- .../parquet/reader/FloatColumnReader.java | 4 +- .../parquet/reader/IntColumnReader.java | 4 +- .../parquet/reader/LongColumnReader.java | 4 +- .../reader/LongDecimalColumnReader.java | 6 +- .../presto/parquet/reader/ParquetReader.java | 20 ++-- .../parquet/reader/PrimitiveColumnReader.java | 6 +- .../reader/ShortDecimalColumnReader.java | 4 +- .../parquet/reader/TimestampColumnReader.java | 4 +- .../parquet/writer/ArrayColumnWriter.java | 2 +- .../presto/parquet/writer/ColumnChunk.java | 2 +- .../parquet/writer/MapColumnWriter.java | 2 +- .../writer/ParquetSchemaConverter.java | 40 +++---- .../presto/parquet/writer/ParquetWriter.java | 2 +- .../presto/parquet/writer/ParquetWriters.java | 30 ++--- .../parquet/writer/PrimitiveColumnWriter.java | 2 +- .../parquet/writer/StructColumnWriter.java | 6 +- .../levels/DefinitionLevelIterables.java | 8 +- .../levels/RepetitionLevelIterables.java | 6 +- .../writer/valuewriter/BigintValueWriter.java | 4 +- .../valuewriter/BooleanValueWriter.java | 4 +- .../writer/valuewriter/CharValueWriter.java | 4 +- .../writer/valuewriter/DateValueWriter.java | 4 +- .../valuewriter/DecimalValueWriter.java | 8 +- .../writer/valuewriter/DoubleValueWriter.java | 4 +- .../valuewriter/IntegerValueWriter.java | 4 +- .../valuewriter/PrimitiveValueWriter.java | 2 +- .../writer/valuewriter/RealValueWriter.java | 4 +- .../apache/parquet/io/ColumnIOConverter.java | 14 +-- .../parquet/BenchmarkParquetReader.java | 18 +-- .../presto/parquet/ParquetTestUtils.java | 34 +++--- .../TestTupleDomainParquetPredicate.java | 24 ++-- .../presto/pinot/PinotBrokerPageSource.java | 26 ++--- .../facebook/presto/pinot/PinotColumn.java | 2 +- .../presto/pinot/PinotColumnHandle.java | 2 +- .../presto/pinot/PinotColumnMetadata.java | 2 +- .../presto/pinot/PinotColumnUtils.java | 18 +-- .../presto/pinot/PinotConnectorFactory.java | 2 +- .../facebook/presto/pinot/PinotModule.java | 6 +- .../pinot/PinotNodePartitioningProvider.java | 2 +- .../presto/pinot/PinotPlanOptimizer.java | 2 +- .../presto/pinot/PinotPushdownUtils.java | 26 ++--- .../presto/pinot/PinotSegmentPageSource.java | 14 +-- .../presto/pinot/PinotSessionProperties.java | 4 +- .../PinotAggregationProjectConverter.java | 2 +- .../query/PinotFilterExpressionConverter.java | 4 +- .../PinotProjectExpressionConverter.java | 6 +- .../pinot/query/PinotQueryGenerator.java | 4 +- .../query/PinotQueryGeneratorContext.java | 2 +- .../facebook/presto/pinot/MetadataUtil.java | 14 +-- .../pinot/TestPinotBrokerPageSource.java | 6 +- .../presto/pinot/TestPinotColumnHandle.java | 4 +- .../presto/pinot/TestPinotColumnMetadata.java | 16 +-- .../presto/pinot/TestPinotQueryBase.java | 12 +- .../pinot/TestPinotSegmentPageSource.java | 4 +- .../presto/pinot/TestPinotSplitManager.java | 2 +- .../pinot/query/TestPinotPlanOptimizer.java | 2 +- .../pinot/query/TestPinotQueryGenerator.java | 4 +- .../plugin/postgresql/PostgreSqlClient.java | 4 +- .../postgresql/TestPostgreSqlTypeMapping.java | 6 +- .../presto/raptor/RaptorBucketFunction.java | 10 +- .../presto/raptor/RaptorColumnHandle.java | 8 +- .../presto/raptor/RaptorConnectorFactory.java | 2 +- .../raptor/RaptorInsertTableHandle.java | 4 +- .../presto/raptor/RaptorMetadata.java | 12 +- .../presto/raptor/RaptorMetadataFactory.java | 2 +- .../facebook/presto/raptor/RaptorModule.java | 2 +- .../RaptorNodePartitioningProvider.java | 2 +- .../raptor/RaptorOutputTableHandle.java | 4 +- .../presto/raptor/RaptorPageSink.java | 12 +- .../raptor/RaptorPageSourceProvider.java | 2 +- .../raptor/RaptorSessionProperties.java | 2 +- .../facebook/presto/raptor/RaptorSplit.java | 2 +- .../presto/raptor/RaptorSplitManager.java | 2 +- .../presto/raptor/RaptorTableHandle.java | 2 +- .../presto/raptor/RaptorTableProperties.java | 8 +- .../TriggerBucketBalancerProcedure.java | 2 +- .../presto/raptor/metadata/ColumnInfo.java | 2 +- .../raptor/metadata/DatabaseShardManager.java | 2 +- .../presto/raptor/metadata/Distribution.java | 6 +- .../raptor/metadata/ShardPredicate.java | 2 +- .../presto/raptor/metadata/TableColumn.java | 6 +- .../raptor/storage/ColumnIndexStatsUtils.java | 16 +-- .../raptor/storage/DeltaShardRewriter.java | 6 +- .../raptor/storage/InplaceShardRewriter.java | 2 +- .../raptor/storage/OrcFileMetadata.java | 2 +- .../raptor/storage/OrcFileRewriter.java | 8 +- .../presto/raptor/storage/OrcFileWriter.java | 6 +- .../presto/raptor/storage/OrcPageSource.java | 16 +-- .../raptor/storage/OrcStorageManager.java | 40 +++---- .../storage/OrcUpdatablePageSource.java | 4 +- .../facebook/presto/raptor/storage/Row.java | 10 +- .../presto/raptor/storage/ShardStats.java | 20 ++-- .../presto/raptor/storage/StorageManager.java | 2 +- .../raptor/storage/StorageManagerConfig.java | 2 +- .../raptor/storage/StorageTypeConverter.java | 42 +++---- .../storage/organization/OrganizationJob.java | 2 +- .../organization/ShardCompactionManager.java | 6 +- .../storage/organization/ShardCompactor.java | 6 +- .../organization/ShardOrganizerUtil.java | 2 +- .../organization/TemporalFunction.java | 8 +- .../raptor/storage/organization/Tuple.java | 2 +- .../systemtables/ColumnRangesSystemTable.java | 12 +- .../raptor/systemtables/PageListBuilder.java | 4 +- .../PreparedStatementBuilder.java | 12 +- .../raptor/systemtables/ResultSetValues.java | 2 +- .../ShardMetadataRecordCursor.java | 12 +- .../TableMetadataSystemTable.java | 14 +-- .../systemtables/TableStatsSystemTable.java | 8 +- .../raptor/systemtables/ValueBuffer.java | 2 +- .../presto/raptor/util/PageBuffer.java | 4 +- .../facebook/presto/raptor/util/Types.java | 4 +- .../raptor/TestRaptorBucketFunction.java | 10 +- .../presto/raptor/TestRaptorConnector.java | 14 +-- .../TestRaptorIntegrationSmokeTest.java | 12 +- .../metadata/TestDatabaseShardManager.java | 16 +-- .../raptor/metadata/TestRaptorMetadata.java | 8 +- .../metadata/TestRaptorSplitManager.java | 4 +- .../raptor/metadata/TestShardPredicate.java | 4 +- .../presto/raptor/storage/OrcTestingUtil.java | 2 +- .../raptor/storage/TestBucketBalancer.java | 2 +- .../raptor/storage/TestOrcFileRewriter.java | 28 ++--- .../raptor/storage/TestOrcStorageManager.java | 30 ++--- .../raptor/storage/TestShardEjector.java | 2 +- .../raptor/storage/TestShardWriter.java | 40 +++---- .../storage/TestStorageManagerConfig.java | 2 +- .../TestCompactionSetCreator.java | 6 +- .../organization/TestShardCompactor.java | 18 +-- .../TestShardOrganizationManager.java | 10 +- .../organization/TestShardOrganizerUtil.java | 12 +- .../storage/organization/TestShardRange.java | 10 +- .../organization/TestTemporalFunction.java | 8 +- .../storage/organization/TestTuple.java | 16 +-- .../TestShardMetadataRecordCursor.java | 8 +- presto-rcfile/pom.xml | 5 + .../presto/rcfile/ColumnEncoding.java | 2 +- .../presto/rcfile/RcFileDecoderUtils.java | 6 +- .../presto/rcfile/RcFileEncoding.java | 34 +++--- .../facebook/presto/rcfile/RcFileReader.java | 6 +- .../presto/rcfile/RcFileWriteValidation.java | 6 +- .../facebook/presto/rcfile/RcFileWriter.java | 4 +- .../rcfile/binary/BinaryColumnEncoding.java | 4 +- .../presto/rcfile/binary/BinaryEncoding.java | 6 +- .../rcfile/binary/BinaryRcFileEncoding.java | 2 +- .../presto/rcfile/binary/BlockEncoding.java | 6 +- .../presto/rcfile/binary/BooleanEncoding.java | 6 +- .../presto/rcfile/binary/ByteEncoding.java | 6 +- .../presto/rcfile/binary/DateEncoding.java | 6 +- .../presto/rcfile/binary/DecimalEncoding.java | 14 +-- .../presto/rcfile/binary/DoubleEncoding.java | 6 +- .../presto/rcfile/binary/FloatEncoding.java | 6 +- .../presto/rcfile/binary/ListEncoding.java | 6 +- .../presto/rcfile/binary/LongEncoding.java | 6 +- .../presto/rcfile/binary/MapEncoding.java | 6 +- .../presto/rcfile/binary/ShortEncoding.java | 6 +- .../presto/rcfile/binary/StringEncoding.java | 6 +- .../presto/rcfile/binary/StructEncoding.java | 6 +- .../rcfile/binary/TimestampEncoding.java | 6 +- .../presto/rcfile/text/BinaryEncoding.java | 6 +- .../presto/rcfile/text/BlockEncoding.java | 6 +- .../presto/rcfile/text/BooleanEncoding.java | 6 +- .../presto/rcfile/text/DateEncoding.java | 6 +- .../presto/rcfile/text/DecimalEncoding.java | 14 +-- .../presto/rcfile/text/DoubleEncoding.java | 6 +- .../presto/rcfile/text/FloatEncoding.java | 6 +- .../presto/rcfile/text/ListEncoding.java | 6 +- .../presto/rcfile/text/LongEncoding.java | 6 +- .../presto/rcfile/text/MapEncoding.java | 6 +- .../presto/rcfile/text/StringEncoding.java | 6 +- .../presto/rcfile/text/StructEncoding.java | 6 +- .../rcfile/text/TextColumnEncoding.java | 4 +- .../rcfile/text/TextRcFileEncoding.java | 2 +- .../presto/rcfile/text/TimestampEncoding.java | 6 +- .../rcfile/AbstractTestRcFileReader.java | 30 ++--- .../facebook/presto/rcfile/RcFileTester.java | 64 +++++------ .../presto/rcfile/TestRcFileReaderManual.java | 4 +- presto-record-decoder/pom.xml | 5 + .../presto/decoder/DecoderColumnHandle.java | 2 +- .../presto/decoder/FieldValueProvider.java | 2 +- .../decoder/avro/AvroColumnDecoder.java | 34 +++--- .../presto/decoder/csv/CsvColumnDecoder.java | 18 +-- .../AbstractDateTimeJsonValueProvider.java | 14 +-- .../json/CustomDateTimeJsonFieldDecoder.java | 12 +- .../decoder/json/DefaultJsonFieldDecoder.java | 18 +-- .../decoder/json/ISO8601JsonFieldDecoder.java | 16 +-- ...illisecondsSinceEpochJsonFieldDecoder.java | 10 +- .../decoder/json/RFC2822JsonFieldDecoder.java | 12 +- .../SecondsSinceEpochJsonFieldDecoder.java | 10 +- .../presto/decoder/raw/RawColumnDecoder.java | 18 +-- .../decoder/DecoderTestColumnHandle.java | 2 +- .../presto/decoder/avro/TestAvroDecoder.java | 40 +++---- .../presto/decoder/csv/TestCsvDecoder.java | 24 ++-- .../decoder/json/JsonFieldDecoderTester.java | 2 +- .../TestCustomDateTimeJsonFieldDecoder.java | 14 +-- .../json/TestDefaultJsonFieldDecoder.java | 14 +-- .../json/TestISO8601JsonFieldDecoder.java | 16 +-- .../presto/decoder/json/TestJsonDecoder.java | 34 +++--- ...illisecondsSinceEpochJsonFieldDecoder.java | 14 +-- .../json/TestRFC2822JsonFieldDecoder.java | 16 +-- ...TestSecondsSinceEpochJsonFieldDecoder.java | 14 +-- .../presto/decoder/raw/TestRawDecoder.java | 26 ++--- .../presto/redis/RedisColumnHandle.java | 2 +- .../presto/redis/RedisConnectorFactory.java | 2 +- .../presto/redis/RedisConnectorModule.java | 6 +- .../redis/RedisInternalFieldDescription.java | 8 +- .../presto/redis/RedisRecordCursor.java | 2 +- .../facebook/presto/redis/RedisRecordSet.java | 2 +- .../redis/RedisTableFieldDescription.java | 2 +- .../hash/ISO8601HashRedisFieldDecoder.java | 14 +-- .../redis/TestMinimalFunctionality.java | 2 +- .../presto/redis/util/CodecSupplier.java | 4 +- .../presto/redis/util/RedisLoader.java | 26 ++--- presto-spark-base/pom.xml | 5 + .../presto/spark/PrestoSparkModule.java | 10 +- .../PrestoSparkQueryExecutionFactory.java | 4 +- .../execution/PrestoSparkOutputOperator.java | 6 +- .../PrestoSparkRemoteSourceFactory.java | 4 +- .../PrestoSparkRemoteSourceOperator.java | 4 +- .../PrestoSparkNodePartitioningManager.java | 2 +- presto-spi/pom.xml | 7 ++ .../facebook/presto/spi/ColumnMetadata.java | 2 +- .../facebook/presto/spi/ConnectorSession.java | 2 +- .../presto/spi/InMemoryRecordSet.java | 22 ++-- .../java/com/facebook/presto/spi/Page.java | 8 +- .../com/facebook/presto/spi/PageBuilder.java | 10 +- .../presto/spi/PageIndexerFactory.java | 2 +- .../com/facebook/presto/spi/PageSorter.java | 4 +- .../java/com/facebook/presto/spi/Plugin.java | 6 +- .../com/facebook/presto/spi/RecordCursor.java | 2 +- .../facebook/presto/spi/RecordPageSource.java | 4 +- .../com/facebook/presto/spi/RecordSet.java | 2 +- .../facebook/presto/spi/SortingProperty.java | 2 +- .../presto/spi/UpdatablePageSource.java | 2 +- .../presto/spi/VariableAllocator.java | 2 +- .../spi/connector/ConnectorContext.java | 4 +- .../spi/connector/ConnectorMetadata.java | 2 +- .../ConnectorNodePartitioningProvider.java | 2 +- .../ClassLoaderSafeConnectorMetadata.java | 2 +- ...assLoaderSafeNodePartitioningProvider.java | 2 +- .../function/AccumulatorStateSerializer.java | 6 +- .../presto/spi/function/CombineFunction.java | 2 +- .../presto/spi/function/FunctionMetadata.java | 2 +- .../function/FunctionNamespaceManager.java | 2 +- .../spi/function/RankingWindowFunction.java | 2 +- .../presto/spi/function/Signature.java | 2 +- .../presto/spi/function/SqlFunctionId.java | 2 +- .../spi/function/SqlInvokedFunction.java | 2 +- .../presto/spi/function/SqlParameter.java | 2 +- .../function/StandardFunctionResolution.java | 2 +- .../spi/function/TypeVariableConstraint.java | 2 +- .../spi/function/ValueWindowFunction.java | 2 +- .../presto/spi/function/WindowFunction.java | 2 +- .../presto/spi/function/WindowIndex.java | 4 +- .../facebook/presto/spi/page/PagesSerde.java | 2 +- .../presto/spi/page/PagesSerdeUtil.java | 8 +- .../plan/FilterStatsCalculatorService.java | 2 +- .../facebook/presto/spi/plan/Ordering.java | 2 +- .../presto/spi/plan/OrderingScheme.java | 2 +- .../spi/predicate/AllOrNoneValueSet.java | 3 +- .../facebook/presto/spi/predicate/Domain.java | 2 +- .../spi/predicate/EquatableValueSet.java | 5 +- .../facebook/presto/spi/predicate/Marker.java | 5 +- .../presto/spi/predicate/NullableValue.java | 6 +- .../facebook/presto/spi/predicate/Range.java | 2 +- .../presto/spi/predicate/SortedRangeSet.java | 4 +- .../presto/spi/predicate/TupleDomain.java | 2 +- .../presto/spi/predicate/ValueSet.java | 2 +- .../presto/spi/procedure/Procedure.java | 4 +- .../presto/spi/relation/CallExpression.java | 2 +- .../spi/relation/ConstantExpression.java | 8 +- .../relation/InputReferenceExpression.java | 2 +- .../relation/LambdaDefinitionExpression.java | 4 +- .../presto/spi/relation/Predicate.java | 2 +- .../spi/relation/PredicateCompiler.java | 2 +- .../presto/spi/relation/RowExpression.java | 2 +- .../spi/relation/SpecialFormExpression.java | 2 +- .../relation/VariableReferenceExpression.java | 2 +- .../presto/spi/session/PropertyMetadata.java | 12 +- .../spi/statistics/ComputedStatistics.java | 2 +- .../com/facebook/presto/spi/TestPage.java | 14 +-- .../spi/{block => }/TestingSession.java | 8 +- .../predicate/BenchmarkSortedRangeSet.java | 2 +- .../spi/predicate/TestAllOrNoneValueSet.java | 8 +- .../presto/spi/predicate/TestDomain.java | 24 ++-- .../spi/predicate/TestEquatableValueSet.java | 14 +-- .../presto/spi/predicate/TestMarker.java | 20 ++-- .../presto/spi/predicate/TestRange.java | 20 ++-- .../spi/predicate/TestSortedRangeSet.java | 20 ++-- .../presto/spi/predicate/TestTupleDomain.java | 20 ++-- .../functions/TeradataDateFunctions.java | 16 +-- .../functions/TeradataStringFunctions.java | 2 +- .../functions/TestTeradataDateFunctions.java | 8 +- .../functions/TestTeradataFunctions.java | 6 +- .../tests/AbstractTestDistributedQueries.java | 2 +- .../AbstractTestIntegrationSmokeTest.java | 2 +- .../presto/tests/AbstractTestQueries.java | 20 ++-- .../tests/AbstractTestQueryFramework.java | 2 +- .../tests/AbstractTestingPrestoClient.java | 4 +- .../com/facebook/presto/tests/CreateHll.java | 2 +- .../com/facebook/presto/tests/CustomAdd.java | 2 +- .../com/facebook/presto/tests/CustomRank.java | 4 +- .../com/facebook/presto/tests/CustomSum.java | 6 +- .../facebook/presto/tests/H2QueryRunner.java | 44 ++++---- .../presto/tests/StatefulSleepingSum.java | 4 +- .../presto/tests/StructuralTestUtil.java | 20 ++-- .../presto/tests/TestingPrestoClient.java | 44 ++++---- .../presto/tests/TestingProcedures.java | 8 +- .../presto/tests/datatype/DataType.java | 28 ++--- .../presto/tests/datatype/DataTypeTest.java | 2 +- .../presto/tests/tpch/AppendingRecordSet.java | 2 +- .../presto/tests/tpch/ConcatRecordSet.java | 2 +- .../presto/tests/tpch/ExampleSystemTable.java | 2 +- .../tpch/MaterializedTupleRecordSet.java | 2 +- .../presto/tests/tpch/TpchIndexProvider.java | 2 +- .../presto/tests/tpch/TpchIndexedData.java | 2 +- .../BenchmarkInformationSchema.java | 2 +- .../tests/AbstractTestEngineOnlyQueries.java | 2 +- .../presto/tests/TestH2QueryRunner.java | 2 +- .../presto/tests/TestLocalQueries.java | 6 +- .../tests/TestQueryPlanDeterminism.java | 2 +- presto-thrift-connector-api/pom.xml | 5 + .../thrift/api/PrestoThriftBlock.java | 28 ++--- .../api/PrestoThriftColumnMetadata.java | 4 +- .../thrift/api/PrestoThriftPageResult.java | 4 +- .../api/datatypes/PrestoThriftBigint.java | 8 +- .../datatypes/PrestoThriftBigintArray.java | 12 +- .../api/datatypes/PrestoThriftBoolean.java | 8 +- .../api/datatypes/PrestoThriftColumnData.java | 4 +- .../api/datatypes/PrestoThriftDate.java | 8 +- .../api/datatypes/PrestoThriftDouble.java | 8 +- .../datatypes/PrestoThriftHyperLogLog.java | 6 +- .../api/datatypes/PrestoThriftInteger.java | 8 +- .../api/datatypes/PrestoThriftJson.java | 4 +- .../api/datatypes/PrestoThriftTimestamp.java | 8 +- .../api/datatypes/PrestoThriftTypeUtils.java | 4 +- .../api/datatypes/PrestoThriftVarchar.java | 6 +- .../thrift/api/datatypes/SliceData.java | 6 +- .../PrestoThriftEquatableValueSet.java | 2 +- .../connector/thrift/api/TestReadWrite.java | 32 +++--- .../api/datatypes/TestPrestoThriftBigint.java | 8 +- .../TestPrestoThriftAllOrNoneValueSet.java | 2 +- .../TestPrestoThriftEquatableValueSet.java | 2 +- .../TestPrestoThriftRangeValueSet.java | 2 +- .../connector/thrift/ThriftColumnHandle.java | 2 +- .../thrift/ThriftConnectorFactory.java | 2 +- .../thrift/ThriftIndexPageSource.java | 2 +- .../connector/thrift/ThriftMetadata.java | 2 +- .../connector/thrift/ThriftPageSource.java | 2 +- .../connector/thrift/ThriftTableMetadata.java | 2 +- .../thrift/TestThriftIndexPageSource.java | 6 +- .../TestThriftIntegrationSmokeTest.java | 2 +- presto-thrift-testing-server/pom.xml | 5 + .../thrift/server/ListBasedRecordSet.java | 2 +- .../server/ThriftIndexedTpchService.java | 2 +- .../thrift/server/ThriftTpchService.java | 4 +- .../thrift/server/TestListBasedRecordSet.java | 6 +- .../presto/tpcds/TpcdsColumnHandle.java | 2 +- .../facebook/presto/tpcds/TpcdsMetadata.java | 16 +-- .../tpcds/TpcdsNodePartitioningProvider.java | 2 +- .../facebook/presto/tpcds/TpcdsRecordSet.java | 12 +- .../TpcdsTableStatisticsFactory.java | 24 ++-- .../presto/tpch/TpchBucketFunction.java | 4 +- .../presto/tpch/TpchColumnHandle.java | 2 +- .../facebook/presto/tpch/TpchMetadata.java | 16 +-- .../tpch/TpchNodePartitioningProvider.java | 4 +- .../facebook/presto/tpch/TpchRecordSet.java | 2 +- presto-verifier/pom.xml | 5 + .../checksum/ArrayColumnValidator.java | 6 +- .../verifier/checksum/ChecksumResult.java | 2 +- .../FloatingPointColumnValidator.java | 2 +- .../verifier/checksum/MapColumnValidator.java | 6 +- .../verifier/checksum/RowColumnValidator.java | 4 +- .../presto/verifier/framework/Column.java | 16 +-- .../verifier/framework/DataVerification.java | 2 +- .../framework/DataVerificationUtil.java | 2 +- .../framework/DeterminismAnalyzer.java | 2 +- .../framework/VerificationFactory.java | 2 +- .../verifier/framework/VerifierModule.java | 8 +- .../verifier/framework/VerifierUtil.java | 6 +- .../verifier/rewrite/QueryRewriter.java | 34 +++--- .../VerificationQueryRewriterFactory.java | 2 +- .../verifier/TestingResultSetMetaData.java | 4 +- .../presto/verifier/VerifierTestUtil.java | 2 +- .../checksum/TestChecksumValidator.java | 18 +-- .../framework/TestDataVerification.java | 2 +- .../framework/TestDeterminismAnalyzer.java | 2 +- .../TestLimitQueryDeterminismAnalyzer.java | 2 +- ...tTooManyOpenPartitionsFailureResolver.java | 2 +- 2309 files changed, 9790 insertions(+), 9690 deletions(-) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractArrayBlock.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractMapBlock.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractRowBlock.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractSingleArrayBlock.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractSingleMapBlock.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractSingleRowBlock.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/AbstractVariableWidthBlock.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ArrayAllocator.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ArrayBlock.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ArrayBlockBuilder.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ArrayBlockEncoding.java (89%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/Block.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockBuilder.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockBuilderStatus.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockEncoding.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockEncodingSerde.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockFlattener.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockLease.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockSerdeUtil.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/BlockUtil.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ByteArrayBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ByteArrayBlockBuilder.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ByteArrayBlockEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ClosingBlockLease.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ColumnarArray.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ColumnarMap.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ColumnarRow.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/DictionaryBlock.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/DictionaryBlockEncoding.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/DictionaryId.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/DuplicateMapKeyException.java (88%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/EncoderUtil.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/Int128ArrayBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/Int128ArrayBlockBuilder.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/Int128ArrayBlockEncoding.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/IntArrayBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/IntArrayBlockBuilder.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/IntArrayBlockEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/IntArrayList.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LazyBlock.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LazyBlockEncoding.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LazyBlockLoader.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LongArrayBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LongArrayBlockBuilder.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/LongArrayBlockEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/MapBlock.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/MapBlockBuilder.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/MapBlockEncoding.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/MethodHandleUtil.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/PageBuilderStatus.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/RowBlock.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/RowBlockBuilder.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/RowBlockEncoding.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/RunLengthBlockEncoding.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/RunLengthEncodedBlock.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ShortArrayBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ShortArrayBlockBuilder.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/ShortArrayBlockEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleArrayBlockWriter.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleMapBlock.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleMapBlockEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleMapBlockWriter.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleRowBlock.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleRowBlockEncoding.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SingleRowBlockWriter.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/SortOrder.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/UncheckedBlock.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/VariableWidthBlock.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/VariableWidthBlockBuilder.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/block/VariableWidthBlockEncoding.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/function/SqlFunctionProperties.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Primitives.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Utils.java (78%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/AbstractIntType.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/AbstractLongType.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/AbstractType.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/AbstractVariableWidthType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/ArrayType.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/BigintType.java (84%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/BooleanType.java (88%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/CharType.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/Chars.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/DateTimeEncoding.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/DateType.java (88%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/DecimalParseResult.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/DecimalType.java (83%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/Decimals.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/DoubleType.java (89%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/FixedWidthType.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/FunctionType.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/HyperLogLogType.java (88%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/IntegerType.java (70%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/JsonType.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/KdbTreeType.java (71%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/LongDecimalType.java (84%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/MapType.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/NamedType.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/NamedTypeSignature.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/P4HyperLogLogType.java (83%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/ParameterKind.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/ParametricType.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/QuantileDigestParametricType.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/QuantileDigestType.java (86%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/RealType.java (82%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/RowFieldName.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/RowType.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/ShortDecimalType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SmallintType.java (83%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlDate.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlDecimal.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlTime.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlTimeWithTimeZone.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlTimestamp.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlTimestampWithTimeZone.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/SqlVarbinary.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/StandardTypes.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/StatisticalDigestParametricType.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/StatisticalDigestType.java (91%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TDigestParametricType.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TDigestType.java (86%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimeType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimeWithTimeZoneType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimeZoneKey.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimeZoneNotSupportedException.java (75%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimestampType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TimestampWithTimeZoneType.java (87%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TinyintType.java (83%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/Type.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeManager.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeParameter.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeSerde.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeSignature.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeSignatureParameter.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/TypeUtils.java (90%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/UnscaledDecimal128Arithmetic.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/VarbinaryType.java (92%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/VarcharType.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/Varchars.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/type/VariableWidthType.java (94%) rename {presto-spi/src/main/resources/com/facebook/presto/spi => presto-common/src/main/resources/com/facebook/presto/common}/type/zone-index.properties (100%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/BenchmarkComputePosition.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/CountingArrayAllocator.java (97%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestArrayBlockBuilder.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestBlockFlattenner.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestBlockRetainedSizeBreakdown.java (92%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestBlockUtil.java (91%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestClosingBlockLease.java (93%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestDictionaryBlockEncoding.java (85%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestIntArrayList.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestMethodHandleUtil.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestVariableWidthBlockBuilder.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestVariableWidthBlockEncoding.java (70%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestingBlockEncodingSerde.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/block/TestingBlockJsonSerde.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestArrayType.java (88%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestChars.java (96%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestDecimals.java (97%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestLongDecimalType.java (90%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestMapType.java (86%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestParameterKind.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestRowType.java (91%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestSqlDecimal.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestTimeZoneKey.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestTypeSerde.java (80%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestTypeSignature.java (97%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestUnscaledDecimal128Arithmetic.java (95%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestingIdType.java (85%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestingTypeDeserializer.java (91%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/TestingTypeManager.java (78%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/type/VarcharsTest.java (96%) rename presto-spi/src/test/java/com/facebook/presto/spi/{block => }/TestingSession.java (90%) diff --git a/pom.xml b/pom.xml index 1900158b50b6e..5471910ce7993 100644 --- a/pom.xml +++ b/pom.xml @@ -188,6 +188,13 @@ ${project.version} + + com.facebook.presto + presto-common + ${project.version} + test-jar + + com.facebook.presto presto-resource-group-managers diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloModule.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloModule.java index 6617905f910e4..09031d2b4beb7 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloModule.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloModule.java @@ -24,9 +24,9 @@ import com.facebook.presto.accumulo.io.AccumuloRecordSetProvider; import com.facebook.presto.accumulo.metadata.AccumuloTable; import com.facebook.presto.accumulo.metadata.ZooKeeperMetadataManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -49,7 +49,7 @@ import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; import static com.facebook.presto.accumulo.AccumuloErrorCode.UNEXPECTED_ACCUMULO_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/Types.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/Types.java index 6f462f1f6c27d..38ba873c4ce84 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/Types.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/Types.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.accumulo; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; /** * Utility class for Presto Type-related functionality. diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloSessionProperties.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloSessionProperties.java index 47e8a93f8a8b2..304ba6de591c9 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloSessionProperties.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloSessionProperties.java @@ -22,11 +22,11 @@ import java.util.List; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.doubleProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; /** * Class contains all session-based properties for the Accumulo connector. diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloTableProperties.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloTableProperties.java index 6d0319ce77e6d..ba2e41242153b 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloTableProperties.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/conf/AccumuloTableProperties.java @@ -16,9 +16,9 @@ import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; import com.facebook.presto.accumulo.serializers.LexicoderRowSerializer; import com.facebook.presto.accumulo.serializers.StringRowSerializer; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/index/Indexer.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/index/Indexer.java index dc07fa29460c9..02930eec39f08 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/index/Indexer.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/index/Indexer.java @@ -19,9 +19,9 @@ import com.facebook.presto.accumulo.metadata.AccumuloTable; import com.facebook.presto.accumulo.model.AccumuloColumnHandle; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java index f248184330574..123167c20c72f 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java @@ -20,12 +20,12 @@ import com.facebook.presto.accumulo.model.Field; import com.facebook.presto.accumulo.model.Row; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeUtils; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeUtils; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.apache.accumulo.core.client.AccumuloException; @@ -47,19 +47,19 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.accumulo.AccumuloErrorCode.ACCUMULO_TABLE_DNE; import static com.facebook.presto.accumulo.AccumuloErrorCode.UNEXPECTED_ACCUMULO_ERROR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_IMPLEMENTATION_ERROR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static java.util.Objects.requireNonNull; import static java.util.concurrent.CompletableFuture.completedFuture; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java index 5d34118d8f7b3..65dc03ffe7b79 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordCursor.java @@ -17,11 +17,11 @@ import com.facebook.presto.accumulo.model.AccumuloColumnConstraint; import com.facebook.presto.accumulo.model.AccumuloColumnHandle; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.accumulo.core.client.BatchScanner; @@ -40,17 +40,17 @@ import static com.facebook.presto.accumulo.AccumuloErrorCode.IO_ERROR; import static com.facebook.presto.accumulo.io.AccumuloPageSink.ROW_ID_COLUMN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordSet.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordSet.java index a5652d2e608ec..19ff8cf6eedfb 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordSet.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloRecordSet.java @@ -19,11 +19,11 @@ import com.facebook.presto.accumulo.model.AccumuloColumnHandle; import com.facebook.presto.accumulo.model.AccumuloSplit; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/metadata/ZooKeeperMetadataManager.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/metadata/ZooKeeperMetadataManager.java index fe29b63636d06..10f96c3a0cee6 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/metadata/ZooKeeperMetadataManager.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/metadata/ZooKeeperMetadataManager.java @@ -16,10 +16,10 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.accumulo.AccumuloModule; import com.facebook.presto.accumulo.conf.AccumuloConfig; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnHandle.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnHandle.java index b8ab6a7ae7ed4..028d5ec153a0c 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnHandle.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.accumulo.model; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Field.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Field.java index 1a0d66d219ecf..321869c6a6fb3 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Field.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Field.java @@ -15,11 +15,11 @@ import com.facebook.presto.accumulo.Types; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import io.airlift.slice.Slice; import java.sql.Date; @@ -32,20 +32,20 @@ import java.util.Map.Entry; import java.util.Objects; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_IMPLEMENTATION_ERROR; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; import static java.util.concurrent.TimeUnit.DAYS; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Row.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Row.java index ff97bb1885d5c..893ba72b64526 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Row.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/Row.java @@ -15,9 +15,9 @@ import com.facebook.presto.accumulo.Types; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -36,19 +36,19 @@ import java.util.Objects; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/RowSchema.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/RowSchema.java index 1900715c79235..6037ae9a191e0 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/RowSchema.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/RowSchema.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.accumulo.model; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import java.util.ArrayList; import java.util.List; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/AccumuloRowSerializer.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/AccumuloRowSerializer.java index 3b2a607f90a7c..b52144a189553 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/AccumuloRowSerializer.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/AccumuloRowSerializer.java @@ -14,11 +14,11 @@ package com.facebook.presto.accumulo.serializers; import com.facebook.presto.accumulo.Types; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeUtils; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeUtils; +import com.facebook.presto.common.type.VarcharType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.apache.accumulo.core.data.Key; @@ -410,7 +410,7 @@ static AccumuloRowSerializer getDefault() * * * - * @param type The presto {@link com.facebook.presto.spi.type.Type} + * @param type The presto {@link com.facebook.presto.common.type.Type} * @param value The Java object per the table in the method description * @return Encoded bytes */ @@ -482,7 +482,7 @@ static AccumuloRowSerializer getDefault() * * * - * @param type The presto {@link com.facebook.presto.spi.type.Type} + * @param type The presto {@link com.facebook.presto.common.type.Type} * @param value Encoded bytes to decode * @param The Java type of the object that has been encoded to the given byte array * @return The Java object per the table in the method description diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/LexicoderRowSerializer.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/LexicoderRowSerializer.java index e0f7eb0b76587..a5cdc40a59df8 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/LexicoderRowSerializer.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/LexicoderRowSerializer.java @@ -14,11 +14,11 @@ package com.facebook.presto.accumulo.serializers; import com.facebook.presto.accumulo.Types; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.VarcharType; import io.airlift.slice.Slice; import org.apache.accumulo.core.client.lexicoder.BytesLexicoder; import org.apache.accumulo.core.client.lexicoder.DoubleLexicoder; @@ -38,19 +38,19 @@ import java.util.Map.Entry; import static com.facebook.presto.accumulo.io.AccumuloPageSink.ROW_ID_COLUMN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.util.concurrent.TimeUnit.DAYS; import static java.util.concurrent.TimeUnit.MILLISECONDS; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/StringRowSerializer.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/StringRowSerializer.java index b0cd1d50c6b98..e9454347acc23 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/StringRowSerializer.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/serializers/StringRowSerializer.java @@ -14,9 +14,9 @@ package com.facebook.presto.accumulo.serializers; import com.facebook.presto.accumulo.Types; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; @@ -30,19 +30,19 @@ import java.util.Map.Entry; import static com.facebook.presto.accumulo.io.AccumuloPageSink.ROW_ID_COLUMN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.String.format; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.concurrent.TimeUnit.DAYS; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/udf/AccumuloStringFunctions.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/udf/AccumuloStringFunctions.java index 89d455b9db119..1182a924c35c7 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/udf/AccumuloStringFunctions.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/udf/AccumuloStringFunctions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.accumulo.udf; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/AccumuloQueryRunner.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/AccumuloQueryRunner.java index a0e32120a254c..231dc642ee547 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/AccumuloQueryRunner.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/AccumuloQueryRunner.java @@ -44,7 +44,7 @@ import static com.facebook.presto.accumulo.AccumuloErrorCode.MINI_ACCUMULO; import static com.facebook.presto.accumulo.AccumuloErrorCode.UNEXPECTED_ACCUMULO_ERROR; import static com.facebook.presto.accumulo.MiniAccumuloConfigUtil.setConfigClassPath; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; import static io.airlift.units.Duration.nanosSince; diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/TestAccumuloClient.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/TestAccumuloClient.java index fad9be37d0632..6b07c267a34a1 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/TestAccumuloClient.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/TestAccumuloClient.java @@ -31,7 +31,7 @@ import java.util.List; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertNotNull; public class TestAccumuloClient diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/index/TestIndexer.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/index/TestIndexer.java index a39399e565518..39d2907366194 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/index/TestIndexer.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/index/TestIndexer.java @@ -17,8 +17,8 @@ import com.facebook.presto.accumulo.model.AccumuloColumnHandle; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; import com.facebook.presto.accumulo.serializers.LexicoderRowSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import org.apache.accumulo.core.client.BatchWriterConfig; import org.apache.accumulo.core.client.Connector; @@ -40,8 +40,8 @@ import java.util.Map.Entry; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.nio.charset.StandardCharsets.UTF_8; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestField.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestField.java index 21c619eacd951..8c89869930f79 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestField.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestField.java @@ -15,13 +15,13 @@ import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -33,18 +33,18 @@ import java.sql.Timestamp; import java.util.GregorianCalendar; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.nio.charset.StandardCharsets.UTF_8; import static org.testng.Assert.assertEquals; diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestRow.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestRow.java index 61e4f318523bd..dadb2bbc42a65 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestRow.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/model/TestRow.java @@ -14,7 +14,7 @@ package com.facebook.presto.accumulo.model; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -23,18 +23,18 @@ import java.util.GregorianCalendar; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.nio.charset.StandardCharsets.UTF_8; import static org.testng.Assert.assertEquals; diff --git a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/serializers/AbstractTestAccumuloRowSerializer.java b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/serializers/AbstractTestAccumuloRowSerializer.java index 8b79b6a6a0846..2a41b02706130 100644 --- a/presto-accumulo/src/test/java/com/facebook/presto/accumulo/serializers/AbstractTestAccumuloRowSerializer.java +++ b/presto-accumulo/src/test/java/com/facebook/presto/accumulo/serializers/AbstractTestAccumuloRowSerializer.java @@ -14,12 +14,12 @@ package com.facebook.presto.accumulo.serializers; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -39,18 +39,18 @@ import java.util.Map; import java.util.UUID; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.testng.Assert.assertEquals; diff --git a/presto-array/pom.xml b/presto-array/pom.xml index 0cea759a43049..66a9e2e4c4614 100644 --- a/presto-array/pom.xml +++ b/presto-array/pom.xml @@ -28,7 +28,7 @@ com.facebook.presto - presto-spi + presto-common diff --git a/presto-array/src/main/java/com/facebook/presto/array/Arrays.java b/presto-array/src/main/java/com/facebook/presto/array/Arrays.java index ec76c504e3bdd..2908536ea90f7 100644 --- a/presto-array/src/main/java/com/facebook/presto/array/Arrays.java +++ b/presto-array/src/main/java/com/facebook/presto/array/Arrays.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.array; -import com.facebook.presto.spi.block.ArrayAllocator; +import com.facebook.presto.common.block.ArrayAllocator; import static com.facebook.presto.array.Arrays.ExpansionFactor.SMALL; import static com.facebook.presto.array.Arrays.ExpansionOption.INITIALIZE; diff --git a/presto-array/src/main/java/com/facebook/presto/array/BlockBigArray.java b/presto-array/src/main/java/com/facebook/presto/array/BlockBigArray.java index 589868e496808..639922be3a69b 100644 --- a/presto-array/src/main/java/com/facebook/presto/array/BlockBigArray.java +++ b/presto-array/src/main/java/com/facebook/presto/array/BlockBigArray.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.array; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.openjdk.jol.info.ClassLayout; public final class BlockBigArray diff --git a/presto-array/src/main/java/com/facebook/presto/array/ReferenceCountMap.java b/presto-array/src/main/java/com/facebook/presto/array/ReferenceCountMap.java index 64bf876c4c881..dc904a03239da 100644 --- a/presto-array/src/main/java/com/facebook/presto/array/ReferenceCountMap.java +++ b/presto-array/src/main/java/com/facebook/presto/array/ReferenceCountMap.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.array; -import com.facebook.presto.spi.block.AbstractMapBlock; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.AbstractMapBlock; +import com.facebook.presto.common.block.Block; import io.airlift.slice.SizeOf; import io.airlift.slice.Slice; import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap; diff --git a/presto-array/src/test/java/com/facebook/presto/array/TestBlockBigArray.java b/presto-array/src/test/java/com/facebook/presto/array/TestBlockBigArray.java index 5ad03bd748e3a..0d2a76803980a 100644 --- a/presto-array/src/test/java/com/facebook/presto/array/TestBlockBigArray.java +++ b/presto-array/src/test/java/com/facebook/presto/array/TestBlockBigArray.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.array; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.IntArrayBlockBuilder; import org.openjdk.jol.info.ClassLayout; import org.testng.annotations.Test; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java index a61ad7fb7972d..577656261c1ed 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java @@ -14,6 +14,7 @@ package com.facebook.presto.atop; import com.facebook.presto.atop.AtopTable.AtopColumn; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ColumnNotFoundException; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -43,7 +43,7 @@ import static com.facebook.presto.atop.AtopTable.AtopColumn.END_TIME; import static com.facebook.presto.atop.AtopTable.AtopColumn.START_TIME; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Objects.requireNonNull; public class AtopMetadata diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopModule.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopModule.java index 87609a88d0acc..f2523af2f7fe9 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopModule.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopModule.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.atop; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Scopes; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java index 1456e8250f5e7..8781b38651865 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java @@ -14,11 +14,11 @@ package com.facebook.presto.atop; import com.facebook.presto.atop.AtopTable.AtopColumn; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSourceProvider.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSourceProvider.java index 7c12d33485b5e..3f5a887f99b59 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSourceProvider.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSourceProvider.java @@ -14,6 +14,8 @@ package com.facebook.presto.atop; import com.facebook.presto.atop.AtopTable.AtopColumn; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import javax.inject.Inject; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java index 25f6b6c091d2c..45173e0b62548 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java @@ -33,7 +33,7 @@ import java.util.ArrayList; import java.util.List; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Objects.requireNonNull; public class AtopSplitManager diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopTable.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopTable.java index e58b3c207ab67..d486e5ffabe7e 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopTable.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopTable.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.atop; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; @@ -31,13 +31,13 @@ import static com.facebook.presto.atop.AtopTable.AtopColumn.START_TIME; import static com.facebook.presto.atop.AtopTable.AtopColumnParser.bigintParser; import static com.facebook.presto.atop.AtopTable.AtopColumnParser.varcharParser; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.INTERVAL_DAY_TO_SECOND; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.INTERVAL_DAY_TO_SECOND; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public enum AtopTable diff --git a/presto-atop/src/test/java/com/facebook/presto/atop/LocalAtopQueryRunner.java b/presto-atop/src/test/java/com/facebook/presto/atop/LocalAtopQueryRunner.java index 024993c4e249e..d498b656beeb5 100644 --- a/presto-atop/src/test/java/com/facebook/presto/atop/LocalAtopQueryRunner.java +++ b/presto-atop/src/test/java/com/facebook/presto/atop/LocalAtopQueryRunner.java @@ -14,7 +14,7 @@ package com.facebook.presto.atop; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.testing.LocalQueryRunner; import com.google.common.collect.ImmutableMap; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java index fb855c7a8b4f4..49708fa5ef7ae 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java @@ -14,6 +14,10 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -25,10 +29,6 @@ import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.CharMatcher; import com.google.common.base.Joiner; import com.google.common.cache.Cache; @@ -54,24 +54,24 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.plugin.jdbc.JdbcErrorCode.JDBC_ERROR; import static com.facebook.presto.plugin.jdbc.StandardReadMappings.jdbcTypeToPrestoType; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.isNullOrEmpty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcColumnHandle.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcColumnHandle.java index fb2ef6e10673a..519a72733547d 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcColumnHandle.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcOutputTableHandle.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcOutputTableHandle.java index 8738628223852..39b18c1778256 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcOutputTableHandle.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcOutputTableHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.ConnectorOutputTableHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java index 159fd1aae21cd..12f70fb1b4fed 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java @@ -14,13 +14,13 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; @@ -36,21 +36,21 @@ import java.util.List; import java.util.concurrent.CompletableFuture; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.readBigDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.plugin.jdbc.JdbcErrorCode.JDBC_ERROR; import static com.facebook.presto.plugin.jdbc.JdbcErrorCode.JDBC_NON_TRANSIENT_ERROR; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.readBigDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static java.lang.Float.intBitsToFloat; import static java.lang.Math.toIntExact; import static java.util.concurrent.CompletableFuture.completedFuture; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordCursor.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordCursor.java index 9cec1bc74735a..a6bb892536459 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordCursor.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordCursor.java @@ -14,10 +14,10 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; import com.google.common.base.VerifyException; import io.airlift.slice.Slice; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordSet.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordSet.java index acd4df5915bdc..743a98fe7f23d 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordSet.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcRecordSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java index fa27d8c4a1fae..f04690886b306 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java @@ -13,26 +13,26 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimeWithTimeZoneType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TimestampWithTimeZoneType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.plugin.jdbc.optimization.JdbcExpression; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimeWithTimeZoneType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TimestampWithTimeZoneType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -48,7 +48,7 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Strings.isNullOrEmpty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/ReadMapping.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/ReadMapping.java index 2db740720e080..4751a84765c06 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/ReadMapping.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/ReadMapping.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.plugin.jdbc; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/StandardReadMappings.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/StandardReadMappings.java index 43d7af5060b88..182997e37036c 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/StandardReadMappings.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/StandardReadMappings.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.plugin.jdbc; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.VarcharType; import com.google.common.base.CharMatcher; import org.joda.time.chrono.ISOChronology; @@ -26,25 +26,25 @@ import java.sql.Types; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeShortScaledValue; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.plugin.jdbc.ReadMapping.longReadMapping; import static com.facebook.presto.plugin.jdbc.ReadMapping.sliceReadMapping; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeShortScaledValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/JdbcFilterToSqlTranslator.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/JdbcFilterToSqlTranslator.java index 3be5bd98e5aea..90f0c786cd31b 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/JdbcFilterToSqlTranslator.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/JdbcFilterToSqlTranslator.java @@ -13,6 +13,21 @@ */ package com.facebook.presto.plugin.jdbc.optimization; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimeWithTimeZoneType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TimestampWithTimeZoneType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.expressions.translator.FunctionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTreeTranslator; @@ -26,21 +41,6 @@ import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimeWithTimeZoneType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TimestampWithTimeZoneType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java index cfa3e4f1e8bf1..14bafd3326062 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/optimization/function/OperatorTranslators.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.plugin.jdbc.optimization.function; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.plugin.jdbc.optimization.JdbcExpression; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.EQUAL; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/MetadataUtil.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/MetadataUtil.java index 074f60a1258af..6733e45e3df26 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/MetadataUtil.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/MetadataUtil.java @@ -16,16 +16,16 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Locale.ENGLISH; import static org.testng.Assert.assertEquals; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcClient.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcClient.java index 5553dd5ede5cf..f80dc0ac8432c 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcClient.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcClient.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import org.testng.annotations.AfterClass; @@ -29,17 +29,17 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.plugin.jdbc.TestingDatabase.CONNECTOR_ID; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BIGINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_DATE; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_DOUBLE; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_REAL; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_VARCHAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.util.Collections.emptyMap; import static java.util.Locale.ENGLISH; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcColumnHandle.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcColumnHandle.java index 17e63da1d9d55..09f9b09848c68 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcColumnHandle.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcColumnHandle.java @@ -16,12 +16,12 @@ import com.facebook.airlift.testing.EquivalenceTester; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.jdbc.MetadataUtil.COLUMN_CODEC; import static com.facebook.presto.plugin.jdbc.MetadataUtil.assertJsonRoundTrip; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BIGINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_VARCHAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; public class TestJdbcColumnHandle { diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcMetadata.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcMetadata.java index d074894427879..35013909158b9 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcMetadata.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcMetadata.java @@ -27,14 +27,14 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.plugin.jdbc.TestingDatabase.CONNECTOR_ID; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BIGINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.PERMISSION_DENIED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static java.util.Collections.emptyMap; import static org.testng.Assert.assertEquals; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcOutputTableHandle.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcOutputTableHandle.java index 6b4b13ca44656..31d5b2460e63b 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcOutputTableHandle.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcOutputTableHandle.java @@ -16,9 +16,9 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.jdbc.MetadataUtil.OUTPUT_TABLE_CODEC; import static com.facebook.presto.plugin.jdbc.MetadataUtil.assertJsonRoundTrip; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; public class TestJdbcOutputTableHandle { diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java index f5fdd51d1a500..c15d6b2526b05 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.type.CharType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.CharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -40,6 +40,17 @@ import java.util.Optional; import static com.facebook.airlift.testing.Assertions.assertContains; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BIGINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BOOLEAN; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_CHAR; @@ -52,17 +63,6 @@ import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_TIMESTAMP; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_TINYINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_VARCHAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static java.lang.String.format; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSet.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSet.java index 650fec5799fc5..e8ea511771f2d 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSet.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSet.java @@ -25,11 +25,11 @@ import java.util.LinkedHashMap; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_BIGINT; import static com.facebook.presto.plugin.jdbc.TestingJdbcTypeHandle.JDBC_VARCHAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java index 3e13a96ec4457..b7c6076661a87 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java @@ -35,10 +35,10 @@ import java.util.Optional; import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterables.getOnlyElement; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java index 4c5966175e096..c2490730afc48 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java @@ -14,6 +14,7 @@ package com.facebook.presto.plugin.jdbc.optimization; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.PlanNodeStatsEstimate; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.cost.StatsProvider; @@ -41,7 +42,6 @@ import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.planner.Plan; import com.facebook.presto.sql.planner.TypeProvider; @@ -69,9 +69,9 @@ import java.util.stream.Stream; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.node; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java index 4be8b7c8fbddc..127b7dc0c5c10 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/AbstractOperatorBenchmark.java @@ -16,6 +16,7 @@ import com.facebook.airlift.stats.CpuTimer; import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.TaskStateMachine; @@ -45,7 +46,6 @@ import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SpillSpaceTracker; import com.facebook.presto.split.SplitSource; import com.facebook.presto.sql.gen.PageFunctionCompiler; @@ -67,9 +67,9 @@ import static com.facebook.airlift.stats.CpuTimer.CpuDuration; import static com.facebook.presto.SystemSessionProperties.getFilterAndProjectMinOutputPageRowCount; import static com.facebook.presto.SystemSessionProperties.getFilterAndProjectMinOutputPageSize; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.relational.VariableToChannelTranslator.translate; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/CountAggregationBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/CountAggregationBenchmark.java index 2d34b2eede407..5fee68b3bf069 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/CountAggregationBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/CountAggregationBenchmark.java @@ -26,7 +26,7 @@ import java.util.Optional; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class CountAggregationBenchmark diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/DoubleSumAggregationBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/DoubleSumAggregationBenchmark.java index c541bd99c8e4e..113abf9852748 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/DoubleSumAggregationBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/DoubleSumAggregationBenchmark.java @@ -27,7 +27,7 @@ import java.util.Optional; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class DoubleSumAggregationBenchmark diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java index 8cbbb861c45df..09ab4ebca3e82 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java @@ -14,6 +14,8 @@ package com.facebook.presto.benchmark; import com.facebook.presto.benchmark.HandTpchQuery1.TpchQuery1Operator.TpchQuery1OperatorFactory; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.HashAggregationOperator.HashAggregationOperatorFactory; @@ -23,10 +25,8 @@ import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.util.DateTimeUtils; import com.google.common.collect.ImmutableList; @@ -37,10 +37,10 @@ import java.util.Optional; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.base.Preconditions.checkState; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java index 8d06c20f17262..2c8cc1aeb6f5d 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.AggregationOperator.AggregationOperatorFactory; import com.facebook.presto.operator.FilterAndProjectOperator; @@ -24,8 +26,6 @@ import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.PageFunctionCompiler; @@ -39,9 +39,9 @@ import java.util.function.Supplier; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashAggregationBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashAggregationBenchmark.java index 0b5157c2c88e5..ea96901a7a0ea 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashAggregationBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashAggregationBenchmark.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.HashAggregationOperator.HashAggregationOperatorFactory; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -29,7 +29,7 @@ import java.util.Optional; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildAndJoinBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildAndJoinBenchmark.java index 28ffe45bcc31c..c481d1cf21302 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildAndJoinBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildAndJoinBenchmark.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.Driver; import com.facebook.presto.operator.DriverFactory; import com.facebook.presto.operator.HashBuilderOperator.HashBuilderOperatorFactory; @@ -25,7 +26,6 @@ import com.facebook.presto.operator.PartitionedLookupSourceFactory; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.testing.NullOutputOperator.NullOutputOperatorFactory; @@ -39,8 +39,8 @@ import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunnerHashEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spiller.PartitioningSpillerFactory.unsupportedPartitioningSpillerFactory; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildBenchmark.java index eed9ca7e3b069..cca8edb82540f 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashBuildBenchmark.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.Driver; import com.facebook.presto.operator.DriverFactory; import com.facebook.presto.operator.HashBuilderOperator.HashBuilderOperatorFactory; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.TaskContext; import com.facebook.presto.operator.ValuesOperator.ValuesOperatorFactory; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.testing.NullOutputOperator.NullOutputOperatorFactory; @@ -37,8 +37,8 @@ import java.util.OptionalInt; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spiller.PartitioningSpillerFactory.unsupportedPartitioningSpillerFactory; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashJoinBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashJoinBenchmark.java index 1461d6239d3b1..f0760781b1676 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashJoinBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HashJoinBenchmark.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.Driver; import com.facebook.presto.operator.DriverContext; @@ -26,7 +27,6 @@ import com.facebook.presto.operator.PartitionedLookupSourceFactory; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.testing.NullOutputOperator.NullOutputOperatorFactory; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/OrderByBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/OrderByBenchmark.java index 0943bfe2bae13..cb6e6047836a6 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/OrderByBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/OrderByBenchmark.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.LimitOperator.LimitOperatorFactory; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.google.common.collect.ImmutableList; import java.util.List; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; public class OrderByBenchmark extends AbstractSimpleOperatorBenchmark diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java index 9183b1743c8ce..71d78ec8df113 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/PredicateFilterBenchmark.java @@ -31,8 +31,8 @@ import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/Top100Benchmark.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/Top100Benchmark.java index 0cfee84db7f75..8682453d8af3f 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/Top100Benchmark.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/Top100Benchmark.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.TopNOperator.TopNOperatorFactory; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.google.common.collect.ImmutableList; import java.util.List; import static com.facebook.presto.benchmark.BenchmarkQueryRunner.createLocalQueryRunner; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; public class Top100Benchmark extends AbstractSimpleOperatorBenchmark diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleColumnHandle.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleColumnHandle.java index 78bba475ddf6a..a3c4deddbc4a0 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleColumnHandle.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleConnector.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleConnector.java index e8d6040256adf..eb9bd54b12548 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleConnector.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleConnector.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; @@ -22,18 +24,16 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.session.PropertyMetadata; import com.facebook.presto.spi.transaction.IsolationLevel; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import io.airlift.units.Duration; import java.util.List; import java.util.concurrent.ExecutorService; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Locale.ENGLISH; import static java.util.concurrent.TimeUnit.SECONDS; import static java.util.stream.Collectors.toList; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleNodePartitioningProvider.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleNodePartitioningProvider.java index 3d95a10daad75..9f32b5b22f7a6 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleNodePartitioningProvider.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHoleNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.function.ToIntFunction; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java index 892eba7e2560f..e66f4f1849fd9 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SplitContext; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.ListeningScheduledExecutorService; @@ -36,19 +36,19 @@ import java.util.Arrays; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static java.math.BigDecimal.ZERO; import static java.util.Objects.requireNonNull; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraColumnHandle.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraColumnHandle.java index 3c297742ccc7a..b1c8807401fb7 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraColumnHandle.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraColumnHandle.java @@ -14,9 +14,9 @@ package com.facebook.presto.cassandra; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects.ToStringHelper; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraInsertTableHandle.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraInsertTableHandle.java index 57d1e55abeb04..24d37de663f6b 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraInsertTableHandle.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraInsertTableHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.cassandra; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorInsertTableHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java index 2fa6c15a49e2f..575053835fb63 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorInsertTableHandle; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraOutputTableHandle.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraOutputTableHandle.java index a5e2e0c524ab1..dd9708b7d817e 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraOutputTableHandle.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraOutputTableHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.cassandra; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorOutputTableHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java index ecfaa82ee40eb..7e06de591aecc 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java @@ -15,11 +15,11 @@ import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.querybuilder.Insert; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -36,16 +36,16 @@ import static com.datastax.driver.core.querybuilder.QueryBuilder.bindMarker; import static com.datastax.driver.core.querybuilder.QueryBuilder.insertInto; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Float.intBitsToFloat; import static java.lang.Math.toIntExact; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java index 0e9ddeec26a49..be3c2887b198f 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java @@ -15,9 +15,9 @@ import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.util.List; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordSet.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordSet.java index 2dfce1fdee2e2..d273f68ff3b8d 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordSet.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.cassandra; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java index f87cb39a75534..1b96534959053 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java @@ -17,17 +17,17 @@ import com.datastax.driver.core.Row; import com.datastax.driver.core.utils.Bytes; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.google.common.annotations.VisibleForTesting; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; @@ -41,10 +41,10 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.net.InetAddresses.toAddrString; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraConnector.java b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraConnector.java index 8d75dc9c9e633..5215e7b69e6c1 100644 --- a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraConnector.java +++ b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraConnector.java @@ -14,6 +14,7 @@ package com.facebook.presto.cassandra; import com.datastax.driver.core.utils.Bytes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingContext; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorContext; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; @@ -52,17 +52,17 @@ import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.presto.cassandra.CassandraTestingUtils.TABLE_ALL_TYPES; import static com.facebook.presto.cassandra.CassandraTestingUtils.createTestTables; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterables.getOnlyElement; import static java.util.Locale.ENGLISH; diff --git a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraDistributed.java b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraDistributed.java index 6dfc60f8cf59e..5e175e9e4b8e2 100644 --- a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraDistributed.java +++ b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraDistributed.java @@ -17,7 +17,7 @@ import com.facebook.presto.tests.AbstractTestDistributedQueries; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; diff --git a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraIntegrationSmokeTest.java b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraIntegrationSmokeTest.java index 33415534de142..7d22b1bcdb8b3 100644 --- a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraIntegrationSmokeTest.java +++ b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/TestCassandraIntegrationSmokeTest.java @@ -14,7 +14,7 @@ package com.facebook.presto.cassandra; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.tests.AbstractTestIntegrationSmokeTest; @@ -39,15 +39,15 @@ import static com.facebook.presto.cassandra.CassandraTestingUtils.TABLE_CLUSTERING_KEYS_LARGE; import static com.facebook.presto.cassandra.CassandraTestingUtils.TABLE_MULTI_PARTITION_CLUSTERING_KEYS; import static com.facebook.presto.cassandra.CassandraTestingUtils.createTestTables; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.MaterializedResult.DEFAULT_PRECISION; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.tests.QueryAssertions.assertContains; diff --git a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java index 7e9c2b59e2e8c..d59f9af6164a0 100644 --- a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java +++ b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java @@ -27,7 +27,7 @@ import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; public class TestCassandraClusteringPredicatesExtractor diff --git a/presto-cli/pom.xml b/presto-cli/pom.xml index 2255877b03733..517fa4e0c5303 100644 --- a/presto-cli/pom.xml +++ b/presto-cli/pom.xml @@ -22,6 +22,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto presto-client diff --git a/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java b/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java index b85f63ad118ff..562214edcc700 100644 --- a/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java +++ b/presto-cli/src/test/java/com/facebook/presto/cli/TestQueryRunner.java @@ -18,7 +18,7 @@ import com.facebook.presto.client.Column; import com.facebook.presto.client.QueryResults; import com.facebook.presto.client.StatementStats; -import com.facebook.presto.spi.type.BigintType; +import com.facebook.presto.common.type.BigintType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-client/pom.xml b/presto-client/pom.xml index 4174c98442733..4b21c7fbfa4ae 100644 --- a/presto-client/pom.xml +++ b/presto-client/pom.xml @@ -20,6 +20,10 @@ com.facebook.presto presto-spi + + com.facebook.presto + presto-common + com.google.code.findbugs diff --git a/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java b/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java index 8bfb12eec3cba..ed9ce5619556c 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java +++ b/presto-client/src/main/java/com/facebook/presto/client/ClientSession.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.client; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.TimeZoneKey; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import io.airlift.units.Duration; diff --git a/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignature.java b/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignature.java index 84bb946fb7b0d..00193d4ac37db 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignature.java +++ b/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignature.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.client; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignatureParameter.java b/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignatureParameter.java index daaf0dbdbb9f9..4ead2f14a1688 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignatureParameter.java +++ b/presto-client/src/main/java/com/facebook/presto/client/ClientTypeSignatureParameter.java @@ -14,9 +14,9 @@ package com.facebook.presto.client; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonParser; diff --git a/presto-client/src/main/java/com/facebook/presto/client/Column.java b/presto-client/src/main/java/com/facebook/presto/client/Column.java index 08657b83aa1c0..b208722bf364b 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/Column.java +++ b/presto-client/src/main/java/com/facebook/presto/client/Column.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.client; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-client/src/main/java/com/facebook/presto/client/FixJsonDataUtils.java b/presto-client/src/main/java/com/facebook/presto/client/FixJsonDataUtils.java index 5d90729ecf34f..5688eb23c2caf 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/FixJsonDataUtils.java +++ b/presto-client/src/main/java/com/facebook/presto/client/FixJsonDataUtils.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.client; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -27,32 +27,32 @@ import java.util.Map; import java.util.Set; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BING_TILE; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.CHAR; -import static com.facebook.presto.spi.type.StandardTypes.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DECIMAL; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.GEOMETRY; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.INTERVAL_DAY_TO_SECOND; -import static com.facebook.presto.spi.type.StandardTypes.INTERVAL_YEAR_TO_MONTH; -import static com.facebook.presto.spi.type.StandardTypes.IPADDRESS; -import static com.facebook.presto.spi.type.StandardTypes.IPPREFIX; -import static com.facebook.presto.spi.type.StandardTypes.JSON; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.REAL; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.StandardTypes.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.TIME; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.StandardTypes.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.StandardTypes.TINYINT; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BING_TILE; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.CHAR; +import static com.facebook.presto.common.type.StandardTypes.DATE; +import static com.facebook.presto.common.type.StandardTypes.DECIMAL; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.GEOMETRY; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.INTERVAL_DAY_TO_SECOND; +import static com.facebook.presto.common.type.StandardTypes.INTERVAL_YEAR_TO_MONTH; +import static com.facebook.presto.common.type.StandardTypes.IPADDRESS; +import static com.facebook.presto.common.type.StandardTypes.IPPREFIX; +import static com.facebook.presto.common.type.StandardTypes.JSON; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.REAL; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.StandardTypes.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.TIME; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.StandardTypes.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.StandardTypes.TINYINT; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; diff --git a/presto-client/src/main/java/com/facebook/presto/client/StatementClient.java b/presto-client/src/main/java/com/facebook/presto/client/StatementClient.java index 33b06218be0f1..d90ef78b13b43 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/StatementClient.java +++ b/presto-client/src/main/java/com/facebook/presto/client/StatementClient.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.client; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.TimeZoneKey; import javax.annotation.Nullable; diff --git a/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java b/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java index e18c461bfc882..8061345326c38 100644 --- a/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java +++ b/presto-client/src/main/java/com/facebook/presto/client/StatementClientV1.java @@ -15,8 +15,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.client.OkHttpUtil.NullCallback; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.TimeZoneKey; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; diff --git a/presto-client/src/test/java/com/facebook/presto/client/TestClientTypeSignature.java b/presto-client/src/test/java/com/facebook/presto/client/TestClientTypeSignature.java index d6ca3b257d0d5..380c93cef2474 100644 --- a/presto-client/src/test/java/com/facebook/presto/client/TestClientTypeSignature.java +++ b/presto-client/src/test/java/com/facebook/presto/client/TestClientTypeSignature.java @@ -16,17 +16,17 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; public class TestClientTypeSignature diff --git a/presto-client/src/test/java/com/facebook/presto/client/TestFixJsonDataUtils.java b/presto-client/src/test/java/com/facebook/presto/client/TestFixJsonDataUtils.java index a83efba59d97a..2c8ad48a54c48 100644 --- a/presto-client/src/test/java/com/facebook/presto/client/TestFixJsonDataUtils.java +++ b/presto-client/src/test/java/com/facebook/presto/client/TestFixJsonDataUtils.java @@ -21,7 +21,7 @@ import java.util.List; import static com.facebook.presto.client.FixJsonDataUtils.fixData; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.collect.Lists.newArrayList; import static org.testng.Assert.assertEquals; diff --git a/presto-common/pom.xml b/presto-common/pom.xml index 78ad72bddfd90..4ff39d9c8d7e3 100644 --- a/presto-common/pom.xml +++ b/presto-common/pom.xml @@ -21,6 +21,22 @@ jackson-annotations + + io.airlift + slice + + + + com.google.code.findbugs + jsr305 + true + + + + org.openjdk.jol + jol-core + + org.testng @@ -39,5 +55,35 @@ assertj-core test + + + org.openjdk.jmh + jmh-core + test + + + + com.fasterxml.jackson.core + jackson-databind + test + + + + it.unimi.dsi + fastutil + test + + + + com.facebook.airlift + json + test + + + + com.fasterxml.jackson.core + jackson-core + test + diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractArrayBlock.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractArrayBlock.java index d5e5833266e4b..3726eb031a05e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractArrayBlock.java @@ -11,21 +11,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import javax.annotation.Nullable; -import static com.facebook.presto.spi.block.ArrayBlock.createArrayBlockInternal; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToOffsetsArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPositions; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.compactOffsets; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.ArrayBlock.createArrayBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.appendNullToOffsetsArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPositions; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.compactOffsets; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; public abstract class AbstractArrayBlock implements Block diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractMapBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractMapBlock.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractMapBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractMapBlock.java index c3e45ecd4a08f..01d2e6cf01caf 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractMapBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractMapBlock.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -24,15 +24,15 @@ import java.util.Arrays; import java.util.Optional; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToOffsetsArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPositions; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.compactOffsets; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; -import static com.facebook.presto.spi.block.MapBlock.createMapBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.appendNullToOffsetsArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPositions; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.compactOffsets; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.MapBlock.createMapBlockInternal; import static io.airlift.slice.SizeOf.sizeOfIntArray; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractRowBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractRowBlock.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractRowBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractRowBlock.java index 65c8b1eac4f04..0c781bd4f16dc 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractRowBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractRowBlock.java @@ -11,20 +11,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToOffsetsArray; -import static com.facebook.presto.spi.block.BlockUtil.arraySame; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPositions; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.compactOffsets; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; -import static com.facebook.presto.spi.block.RowBlock.createRowBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.appendNullToOffsetsArray; +import static com.facebook.presto.common.block.BlockUtil.arraySame; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPositions; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.compactOffsets; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.RowBlock.createRowBlockInternal; public abstract class AbstractRowBlock implements Block diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleArrayBlock.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleArrayBlock.java index 0644a9466165b..f1ed864567959 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleArrayBlock.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; public abstract class AbstractSingleArrayBlock implements Block diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleMapBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleMapBlock.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleMapBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleMapBlock.java index e98edf6942a42..ed356a90bae9d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleMapBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleMapBlock.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; public abstract class AbstractSingleMapBlock implements Block diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleRowBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleRowBlock.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleRowBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleRowBlock.java index 3e1757e1c38db..8831017a26a37 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractSingleRowBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractSingleRowBlock.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; public abstract class AbstractSingleRowBlock implements Block diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractVariableWidthBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractVariableWidthBlock.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractVariableWidthBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/AbstractVariableWidthBlock.java index 9cc97cfaff151..373b1bf4bf433 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/AbstractVariableWidthBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/AbstractVariableWidthBlock.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; import io.airlift.slice.XxHash64; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPosition; +import static com.facebook.presto.common.block.BlockUtil.checkValidPosition; import static io.airlift.slice.Slices.EMPTY_SLICE; public abstract class AbstractVariableWidthBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayAllocator.java b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayAllocator.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayAllocator.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ArrayAllocator.java index 37862daa6bf50..c949402889c51 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayAllocator.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayAllocator.java @@ -12,9 +12,7 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; - -import com.facebook.presto.spi.api.Experimental; +package com.facebook.presto.common.block; /** * Manages the creation and return of primitive arrays, to be used within an operator to avoid repeated array allocation. @@ -23,7 +21,6 @@ * The arrays which are returned may have a size which exceeds the specified {@code positionCount}, and they are not * guaranteed to be filled with the type's default value. */ -@Experimental public interface ArrayAllocator { int[] borrowIntArray(int positionCount); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java index f670765d9c915..f39488741b5bc 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockBuilder.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockBuilder.java index baca66f71e5cc..9211b1e89da51 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockBuilder.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.SliceInput; import org.openjdk.jol.info.ClassLayout; @@ -22,8 +22,8 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.ArrayBlock.createArrayBlockInternal; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.ArrayBlock.createArrayBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.max; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockEncoding.java similarity index 89% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockEncoding.java index 02e80c497a19a..253c63ce3eb51 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ArrayBlockEncoding.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.block.ArrayBlock.createArrayBlockInternal; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.ArrayBlock.createArrayBlockInternal; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class ArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/Block.java b/presto-common/src/main/java/com/facebook/presto/common/block/Block.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/Block.java rename to presto-common/src/main/java/com/facebook/presto/common/block/Block.java index cb6666fd4b689..5ecc6a8044c89 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/Block.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/Block.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; public interface Block extends UncheckedBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilder.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilder.java index bdb3e1033b3e9..2c25c5aab4285 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilderStatus.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilderStatus.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilderStatus.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilderStatus.java index 723fdd2c9458a..1ee5f570a6912 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockBuilderStatus.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockBuilderStatus.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockEncoding.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockEncoding.java index d3c4b5c3f3370..f849fecc74804 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockEncoding.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncodingSerde.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockEncodingSerde.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncodingSerde.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockEncodingSerde.java index bcf001d52efcd..c292d8571078f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockEncodingSerde.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockEncodingSerde.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockFlattener.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockFlattener.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockFlattener.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockFlattener.java index 98176d3ac2de6..cadc704599012 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockFlattener.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockFlattener.java @@ -11,16 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; - -import com.facebook.presto.spi.api.Experimental; +package com.facebook.presto.common.block; import java.util.Arrays; -import static com.facebook.presto.spi.block.ClosingBlockLease.newLease; +import static com.facebook.presto.common.block.ClosingBlockLease.newLease; import static java.util.Objects.requireNonNull; -@Experimental public class BlockFlattener { private final ArrayAllocator allocator; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockLease.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockLease.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockLease.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockLease.java index 31b2319db6cd8..3b5ec19234706 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockLease.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockLease.java @@ -11,9 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; - -import com.facebook.presto.spi.api.Experimental; +package com.facebook.presto.common.block; import java.util.function.Supplier; @@ -22,7 +20,6 @@ * method, which must only be called once. The {@link #close()} method must be called unconditionally * when use of the Block is complete. */ -@Experimental public interface BlockLease extends Supplier, AutoCloseable { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockSerdeUtil.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockSerdeUtil.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockSerdeUtil.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockSerdeUtil.java index f6549307c61df..38f431fe29839 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockSerdeUtil.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockSerdeUtil.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.common.GenericInternalException; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -21,17 +21,16 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; - public final class BlockSerdeUtil { public static final MethodHandle READ_BLOCK; + static { try { READ_BLOCK = MethodHandles.lookup().unreflect(BlockSerdeUtil.class.getMethod("readBlock", BlockEncodingSerde.class, Slice.class)); } catch (IllegalAccessException | NoSuchMethodException e) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, e); + throw new GenericInternalException(e); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockUtil.java b/presto-common/src/main/java/com/facebook/presto/common/block/BlockUtil.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/BlockUtil.java rename to presto-common/src/main/java/com/facebook/presto/common/block/BlockUtil.java index 8eafb54803d20..5fbd7d3cbeae2 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/BlockUtil.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/BlockUtil.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlock.java index de27b51c23ca6..76d365b060784 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -21,13 +21,13 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.ensureCapacity; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.ensureCapacity; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; public class ByteArrayBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockBuilder.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockBuilder.java index 44b35b4998c12..8ab1122f93991 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -22,11 +22,11 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.max; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockEncoding.java index 09ef861fd1e58..bd4d41166df8a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ByteArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ByteArrayBlockEncoding.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class ByteArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ClosingBlockLease.java b/presto-common/src/main/java/com/facebook/presto/common/block/ClosingBlockLease.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ClosingBlockLease.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ClosingBlockLease.java index 7e3f23a7cc838..ff48d5a5bf78f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ClosingBlockLease.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ClosingBlockLease.java @@ -11,9 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; - -import com.facebook.presto.spi.api.Experimental; +package com.facebook.presto.common.block; import javax.annotation.concurrent.NotThreadSafe; @@ -24,7 +22,6 @@ import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; -@Experimental @NotThreadSafe public final class ClosingBlockLease implements BlockLease diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarArray.java b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarArray.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarArray.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ColumnarArray.java index cfc7dcb839427..506ea084fcd21 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarArray.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarArray.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarMap.java b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarMap.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarMap.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ColumnarMap.java index 8fb1486de2a9f..faaa9602ddd8f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarMap.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarMap.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; import java.util.Optional; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarRow.java b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarRow.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarRow.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ColumnarRow.java index 63c42822d6466..dcdbabaa40d6c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ColumnarRow.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ColumnarRow.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlock.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlock.java index 3362a152c7941..478188cfe19c0 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; @@ -23,13 +23,13 @@ import java.util.Map; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPosition; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPositions; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPosition; +import static com.facebook.presto.common.block.BlockUtil.checkValidPositions; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.min; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlockEncoding.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlockEncoding.java index 8c0b2a52c755c..99045c35d142b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryBlockEncoding.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryId.java b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryId.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryId.java rename to presto-common/src/main/java/com/facebook/presto/common/block/DictionaryId.java index ed1ab17df7f59..d2cb5af8bef34 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/DictionaryId.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/DictionaryId.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import java.util.Objects; import java.util.UUID; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/DuplicateMapKeyException.java b/presto-common/src/main/java/com/facebook/presto/common/block/DuplicateMapKeyException.java similarity index 88% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/DuplicateMapKeyException.java rename to presto-common/src/main/java/com/facebook/presto/common/block/DuplicateMapKeyException.java index 79fcaf2c2eb40..4710874a02cb5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/DuplicateMapKeyException.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/DuplicateMapKeyException.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import static java.lang.String.format; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/EncoderUtil.java b/presto-common/src/main/java/com/facebook/presto/common/block/EncoderUtil.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/EncoderUtil.java rename to presto-common/src/main/java/com/facebook/presto/common/block/EncoderUtil.java index c0d322d516776..7aea7407ec078 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/EncoderUtil.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/EncoderUtil.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlock.java index a73616dbce40a..030bf19efcb0b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -21,13 +21,13 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.ensureCapacity; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.ensureCapacity; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Integer.bitCount; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockBuilder.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockBuilder.java index 2b02549c58e89..bb3db784fe20b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -22,13 +22,13 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; -import static com.facebook.presto.spi.block.Int128ArrayBlock.INT128_BYTES; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.Int128ArrayBlock.INT128_BYTES; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Integer.bitCount; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockEncoding.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockEncoding.java index 0f9145edf70ee..4a34b27f7680d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/Int128ArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/Int128ArrayBlockEncoding.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class Int128ArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlock.java index b6407297dd756..93ab13629b948 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -21,13 +21,13 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.ensureCapacity; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.ensureCapacity; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; public class IntArrayBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockBuilder.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockBuilder.java index c70cc6092860c..b887a7018656b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -22,11 +22,11 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.max; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockEncoding.java index e173b1de50221..85b5d5e09d512 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayBlockEncoding.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class IntArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayList.java b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayList.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayList.java rename to presto-common/src/main/java/com/facebook/presto/common/block/IntArrayList.java index 2982cdb265236..9cb1052e7fe67 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/IntArrayList.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/IntArrayList.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import java.util.Arrays; -import static com.facebook.presto.spi.block.BlockUtil.MAX_ARRAY_SIZE; +import static com.facebook.presto.common.block.BlockUtil.MAX_ARRAY_SIZE; import static java.lang.String.format; /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlock.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LazyBlock.java index 5be7b5e8210c2..3c25390f628e7 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockEncoding.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockEncoding.java index 554a68883fb74..0d8d8c0931120 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockEncoding.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockLoader.java b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockLoader.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockLoader.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockLoader.java index 5448166344a2a..450e9b4e67395 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LazyBlockLoader.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LazyBlockLoader.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; public interface LazyBlockLoader { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlock.java index 51f6b781bda89..67aec7c44f062 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -21,13 +21,13 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.ensureCapacity; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.ensureCapacity; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.toIntExact; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockBuilder.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockBuilder.java index 73b3578f230cf..4725641a66782 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -22,11 +22,11 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.max; import static java.lang.Math.toIntExact; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockEncoding.java index 44539c2ae1d03..93ecf1936dd3d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/LongArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/LongArrayBlockEncoding.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class LongArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java index 3f60593d762c9..d5e13c857c8a1 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlock.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -25,8 +25,8 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.MapBlockBuilder.buildHashTable; -import static com.facebook.presto.spi.block.MapBlockBuilder.verify; +import static com.facebook.presto.common.block.MapBlockBuilder.buildHashTable; +import static com.facebook.presto.common.block.MapBlockBuilder.verify; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java index c049b54deaa6b..e5b3658155c1c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java @@ -12,10 +12,10 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.NotSupportedException; +import com.facebook.presto.common.type.Type; import io.airlift.slice.SliceInput; import org.openjdk.jol.info.ClassLayout; @@ -26,9 +26,8 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.MapBlock.createMapBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.MapBlock.createMapBlockInternal; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -535,7 +534,7 @@ private static void buildHashTableStrict( } if (isDuplicateKey == null) { - throw new PrestoException(NOT_SUPPORTED, "map key cannot be null or contain nulls"); + throw new NotSupportedException("map key cannot be null or contain nulls"); } if (isDuplicateKey) { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockEncoding.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/MapBlockEncoding.java index b5c567f4c0d22..e49cb577e661c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/MapBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockEncoding.java @@ -12,19 +12,19 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.block.AbstractMapBlock.HashTables; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSerde; +import com.facebook.presto.common.block.AbstractMapBlock.HashTables; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSerde; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import java.util.Optional; -import static com.facebook.presto.spi.block.AbstractMapBlock.HASH_MULTIPLIER; +import static com.facebook.presto.common.block.AbstractMapBlock.HASH_MULTIPLIER; import static io.airlift.slice.Slices.wrappedIntArray; import static java.lang.String.format; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/MethodHandleUtil.java b/presto-common/src/main/java/com/facebook/presto/common/block/MethodHandleUtil.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/MethodHandleUtil.java rename to presto-common/src/main/java/com/facebook/presto/common/block/MethodHandleUtil.java index 2f97d52783b8c..2e4427a89770d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/MethodHandleUtil.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MethodHandleUtil.java @@ -12,17 +12,16 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static java.lang.String.format; import static java.lang.invoke.MethodType.methodType; @@ -121,7 +120,7 @@ public static MethodHandle methodHandle(Class clazz, String name, Class... return MethodHandles.lookup().unreflect(clazz.getMethod(name, parameterTypes)); } catch (IllegalAccessException | NoSuchMethodException e) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, e); + throw new GenericInternalException(e); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/PageBuilderStatus.java b/presto-common/src/main/java/com/facebook/presto/common/block/PageBuilderStatus.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/PageBuilderStatus.java rename to presto-common/src/main/java/com/facebook/presto/common/block/PageBuilderStatus.java index 30bae6580c961..e18d9a8a2c20b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/PageBuilderStatus.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/PageBuilderStatus.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; public class PageBuilderStatus { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java index 18535be158104..29f5677507136 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlockBuilder.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/RowBlockBuilder.java index 7d977a3d40264..ee84eac375b1f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlockBuilder.java @@ -12,9 +12,9 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.SliceInput; import org.openjdk.jol.info.ClassLayout; @@ -24,8 +24,8 @@ import java.util.List; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.RowBlock.createRowBlockInternal; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.RowBlock.createRowBlockInternal; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlockEncoding.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/RowBlockEncoding.java index 22fca272d40a7..82653581cf1db 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/RowBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RowBlockEncoding.java @@ -12,12 +12,12 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.RowBlock.createRowBlockInternal; +import static com.facebook.presto.common.block.RowBlock.createRowBlockInternal; import static io.airlift.slice.Slices.wrappedIntArray; public class RowBlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/RunLengthBlockEncoding.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/RunLengthBlockEncoding.java index 32b87bb22bcf6..ca249589ccdad 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RunLengthBlockEncoding.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthEncodedBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/RunLengthEncodedBlock.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthEncodedBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/RunLengthEncodedBlock.java index ebf88c41a6682..ac4f8deaa2585 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/RunLengthEncodedBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/RunLengthEncodedBlock.java @@ -11,20 +11,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.predicate.Utils; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPosition; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPosition; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlock.java index 617a37452b5c7..0da769abfc468 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; @@ -21,13 +21,13 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.ensureCapacity; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.ensureCapacity; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; public class ShortArrayBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockBuilder.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockBuilder.java index 47373816e725b..dfa3534931312 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -22,11 +22,11 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.countUsedPositions; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.countUsedPositions; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.max; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockEncoding.java index 79bb84d6ac52b..e42b46a6b5d10 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/ShortArrayBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/ShortArrayBlockEncoding.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; public class ShortArrayBlockEncoding implements BlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleArrayBlockWriter.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleArrayBlockWriter.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleArrayBlockWriter.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleArrayBlockWriter.java index 162ad1eb18a29..d48284189ff9e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleArrayBlockWriter.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleArrayBlockWriter.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlock.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlock.java index d69b1ef647aa1..d49e9babca455 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlock.java @@ -12,10 +12,11 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.NotSupportedException; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; @@ -23,10 +24,8 @@ import java.util.function.BiConsumer; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.AbstractMapBlock.HASH_MULTIPLIER; -import static com.facebook.presto.spi.block.MapBlockBuilder.computePosition; +import static com.facebook.presto.common.block.AbstractMapBlock.HASH_MULTIPLIER; +import static com.facebook.presto.common.block.MapBlockBuilder.computePosition; import static io.airlift.slice.SizeOf.sizeOfIntArray; import static java.lang.String.format; @@ -418,16 +417,13 @@ private static RuntimeException handleThrowable(Throwable throwable) if (throwable instanceof Error) { throw (Error) throwable; } - if (throwable instanceof PrestoException) { - throw (PrestoException) throwable; - } - throw new PrestoException(GENERIC_INTERNAL_ERROR, throwable); + throw new GenericInternalException(throwable); } private static void checkNotIndeterminate(Boolean equalsResult) { if (equalsResult == null) { - throw new PrestoException(NOT_SUPPORTED, "map key cannot be null or contain nulls"); + throw new NotSupportedException("map key cannot be null or contain nulls"); } } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockEncoding.java index 9a7c21931852e..b08e07e3c7798 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockEncoding.java @@ -12,22 +12,22 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; +import com.facebook.presto.common.block.AbstractMapBlock.HashTables; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.block.AbstractMapBlock.HashTables; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSerde; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import java.lang.invoke.MethodHandle; import java.util.Optional; -import static com.facebook.presto.spi.block.AbstractMapBlock.HASH_MULTIPLIER; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.block.AbstractMapBlock.HASH_MULTIPLIER; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; import static io.airlift.slice.Slices.wrappedIntArray; import static java.lang.String.format; import static java.util.Arrays.asList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockWriter.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockWriter.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockWriter.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockWriter.java index 105758dfb3d9c..a437cd21a9385 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleMapBlockWriter.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleMapBlockWriter.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlock.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlock.java index a59222cb61426..16ef99733466f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlock.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockEncoding.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockEncoding.java index 1ea5f0681358a..95d6679b7f6bc 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockEncoding.java @@ -12,7 +12,7 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockWriter.java b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockWriter.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockWriter.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockWriter.java index afd688bd6d793..4d8b1f8586bab 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SingleRowBlockWriter.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SingleRowBlockWriter.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/SortOrder.java b/presto-common/src/main/java/com/facebook/presto/common/block/SortOrder.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/SortOrder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/SortOrder.java index d0ba00be73196..2beb43a8274b5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/SortOrder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/SortOrder.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; public enum SortOrder { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/UncheckedBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/UncheckedBlock.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/UncheckedBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/UncheckedBlock.java index 8c14e3ba301b9..6bd2fe4af34cb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/UncheckedBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/UncheckedBlock.java @@ -11,9 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.api.Experimental; import io.airlift.slice.Slice; /** @@ -41,7 +40,6 @@ * use unchecked indexing also for the inner blocks, you may unpeel the blocks using existing utilities * such as {@link ColumnarArray}, {@link ColumnarMap}, {@link ColumnarRow} and {@link BlockFlattener}. */ -@Experimental public interface UncheckedBlock { /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlock.java b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlock.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlock.java rename to presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlock.java index e54fb5e4d3ad7..36d2b6a75c305 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlock.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlock.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; @@ -24,14 +24,14 @@ import java.util.Optional; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToIsNullArray; -import static com.facebook.presto.spi.block.BlockUtil.appendNullToOffsetsArray; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.compactOffsets; -import static com.facebook.presto.spi.block.BlockUtil.compactSlice; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.appendNullToIsNullArray; +import static com.facebook.presto.common.block.BlockUtil.appendNullToOffsetsArray; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.compactOffsets; +import static com.facebook.presto.common.block.BlockUtil.compactSlice; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.sizeOf; public class VariableWidthBlock diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockBuilder.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockBuilder.java index 89fd5a6bc28b8..5339677c68d73 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; @@ -28,17 +28,17 @@ import java.util.Arrays; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.block.BlockUtil.MAX_ARRAY_SIZE; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetBytes; -import static com.facebook.presto.spi.block.BlockUtil.calculateBlockResetSize; -import static com.facebook.presto.spi.block.BlockUtil.checkArrayRange; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPosition; -import static com.facebook.presto.spi.block.BlockUtil.checkValidPositions; -import static com.facebook.presto.spi.block.BlockUtil.checkValidRegion; -import static com.facebook.presto.spi.block.BlockUtil.compactArray; -import static com.facebook.presto.spi.block.BlockUtil.compactOffsets; -import static com.facebook.presto.spi.block.BlockUtil.compactSlice; -import static com.facebook.presto.spi.block.BlockUtil.internalPositionInRange; +import static com.facebook.presto.common.block.BlockUtil.MAX_ARRAY_SIZE; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetBytes; +import static com.facebook.presto.common.block.BlockUtil.calculateBlockResetSize; +import static com.facebook.presto.common.block.BlockUtil.checkArrayRange; +import static com.facebook.presto.common.block.BlockUtil.checkValidPosition; +import static com.facebook.presto.common.block.BlockUtil.checkValidPositions; +import static com.facebook.presto.common.block.BlockUtil.checkValidRegion; +import static com.facebook.presto.common.block.BlockUtil.compactArray; +import static com.facebook.presto.common.block.BlockUtil.compactOffsets; +import static com.facebook.presto.common.block.BlockUtil.compactSlice; +import static com.facebook.presto.common.block.BlockUtil.internalPositionInRange; import static io.airlift.slice.SizeOf.SIZE_OF_BYTE; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockEncoding.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockEncoding.java index f65ce7d2461fc..04411e1caa49a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/block/VariableWidthBlockEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/VariableWidthBlockEncoding.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.block.EncoderUtil.decodeNullBits; -import static com.facebook.presto.spi.block.EncoderUtil.encodeNullsAsBits; +import static com.facebook.presto.common.block.EncoderUtil.decodeNullBits; +import static com.facebook.presto.common.block.EncoderUtil.encodeNullsAsBits; import static io.airlift.slice.SizeOf.SIZE_OF_INT; public class VariableWidthBlockEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionProperties.java b/presto-common/src/main/java/com/facebook/presto/common/function/SqlFunctionProperties.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionProperties.java rename to presto-common/src/main/java/com/facebook/presto/common/function/SqlFunctionProperties.java index 57114a0d76447..49c7e78585397 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionProperties.java +++ b/presto-common/src/main/java/com/facebook/presto/common/function/SqlFunctionProperties.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.function; +package com.facebook.presto.common.function; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import java.util.Locale; import java.util.Objects; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Primitives.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Primitives.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Primitives.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Primitives.java index 3b3efc63d985f..ea38de2533f92 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Primitives.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Primitives.java @@ -14,7 +14,7 @@ /* * Copyright (C) 2007 The Guava Authors */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import java.util.Collections; import java.util.HashMap; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Utils.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Utils.java similarity index 78% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Utils.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Utils.java index 17255750ec5ee..fee0b2157e610 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Utils.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Utils.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; public final class Utils { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractIntType.java b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractIntType.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractIntType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/AbstractIntType.java index 13ffd320165d0..19d359b2879ab 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractIntType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractIntType.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; +package com.facebook.presto.common.type; + +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.IntArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; import io.airlift.slice.Slice; import static java.lang.Long.rotateLeft; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractLongType.java b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractLongType.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractLongType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/AbstractLongType.java index f4a570535ec60..8e64dd9caa546 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractLongType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractLongType.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; +package com.facebook.presto.common.type; + +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; import io.airlift.slice.Slice; import static java.lang.Long.rotateLeft; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractType.java b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractType.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/AbstractType.java index 4d48a0125625e..90877637ffa5f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractType.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.UncheckedBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.UncheckedBlock; import io.airlift.slice.Slice; import java.util.ArrayList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractVariableWidthType.java b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractVariableWidthType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractVariableWidthType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/AbstractVariableWidthType.java index 4d77c058934dd..3e149bb37bb00 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/AbstractVariableWidthType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/AbstractVariableWidthType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import static java.lang.Math.min; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/ArrayType.java b/presto-common/src/main/java/com/facebook/presto/common/type/ArrayType.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/ArrayType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/ArrayType.java index 68c5d218f3f86..2b1af51c79720 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/ArrayType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/ArrayType.java @@ -11,23 +11,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.block.AbstractArrayBlock; -import com.facebook.presto.spi.block.ArrayBlockBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; +package com.facebook.presto.common.type; + +import com.facebook.presto.common.block.AbstractArrayBlock; +import com.facebook.presto.common.block.ArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.TypeUtils.checkElementNotNull; -import static com.facebook.presto.spi.type.TypeUtils.hashPosition; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.TypeUtils.checkElementNotNull; +import static com.facebook.presto.common.type.TypeUtils.hashPosition; import static java.util.Collections.singletonList; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/BigintType.java b/presto-common/src/main/java/com/facebook/presto/common/type/BigintType.java similarity index 84% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/BigintType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/BigintType.java index 06e8bffc91376..30101f86c5296 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/BigintType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/BigintType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class BigintType extends AbstractLongType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/BooleanType.java b/presto-common/src/main/java/com/facebook/presto/common/type/BooleanType.java similarity index 88% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/BooleanType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/BooleanType.java index f721293db4219..36873cfdb9a8c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/BooleanType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/BooleanType.java @@ -11,17 +11,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.ByteArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.ByteArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class BooleanType extends AbstractType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/CharType.java b/presto-common/src/main/java/com/facebook/presto/common/type/CharType.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/CharType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/CharType.java index e1d874910427e..d38e4aa76da38 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/CharType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/CharType.java @@ -11,19 +11,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.InvalidFunctionArgumentException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import java.util.Objects; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Chars.compareChars; +import static com.facebook.presto.common.type.Chars.compareChars; import static java.lang.String.format; import static java.util.Collections.singletonList; @@ -48,7 +47,7 @@ private CharType(long length) Slice.class); if (length < 0 || length > MAX_LENGTH) { - throw new PrestoException(INVALID_FUNCTION_ARGUMENT, format("CHAR length scale must be in range [0, %s]", MAX_LENGTH)); + throw new InvalidFunctionArgumentException(format("CHAR length scale must be in range [0, %s]", MAX_LENGTH)); } this.length = (int) length; } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/Chars.java b/presto-common/src/main/java/com/facebook/presto/common/type/Chars.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/Chars.java rename to presto-common/src/main/java/com/facebook/presto/common/type/Chars.java index c0b42d594b8ee..6163141218cf5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/Chars.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/Chars.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.Varchars.byteCount; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; +import static com.facebook.presto.common.type.Varchars.byteCount; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static io.airlift.slice.SliceUtf8.countCodePoints; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/DateTimeEncoding.java b/presto-common/src/main/java/com/facebook/presto/common/type/DateTimeEncoding.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/DateTimeEncoding.java rename to presto-common/src/main/java/com/facebook/presto/common/type/DateTimeEncoding.java index ff31c4bed80f9..ba7d6141eed3c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/DateTimeEncoding.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/DateTimeEncoding.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; import static java.util.Objects.requireNonNull; public final class DateTimeEncoding diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/DateType.java b/presto-common/src/main/java/com/facebook/presto/common/type/DateType.java similarity index 88% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/DateType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/DateType.java index 933b0681a8a51..402bbed73ba79 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/DateType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/DateType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; // // A date is stored as days from 1970-01-01. diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalParseResult.java b/presto-common/src/main/java/com/facebook/presto/common/type/DecimalParseResult.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalParseResult.java rename to presto-common/src/main/java/com/facebook/presto/common/type/DecimalParseResult.java index e9957091e5757..e4cacde16a033 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalParseResult.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/DecimalParseResult.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.Objects; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalType.java b/presto-common/src/main/java/com/facebook/presto/common/type/DecimalType.java similarity index 83% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/DecimalType.java index d1279df5b875b..5a543c9f5d004 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/DecimalType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/DecimalType.java @@ -11,16 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.common.InvalidFunctionArgumentException; import java.util.ArrayList; import java.util.List; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Decimals.MAX_PRECISION; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.MAX_PRECISION; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; import static java.util.Collections.unmodifiableList; public abstract class DecimalType @@ -90,11 +89,11 @@ public boolean isShort() void validatePrecisionScale(int precision, int scale, int maxPrecision) { if (precision <= 0 || precision > maxPrecision) { - throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "DECIMAL precision must be in range [1, " + MAX_PRECISION + "]"); + throw new InvalidFunctionArgumentException("DECIMAL precision must be in range [1, " + MAX_PRECISION + "]"); } if (scale < 0 || scale > precision) { - throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "DECIMAL scale must be in range [0, precision]"); + throw new InvalidFunctionArgumentException("DECIMAL scale must be in range [0, precision]"); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/Decimals.java b/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/Decimals.java rename to presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java index 351caeb5c50f7..1b6f9faf0de32 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/Decimals.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.OutOfRangeException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; import java.math.BigDecimal; @@ -24,11 +24,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.toUnscaledString; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.toUnscaledString; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; import static java.lang.Math.abs; import static java.lang.Math.pow; import static java.lang.Math.round; @@ -251,7 +250,7 @@ public static boolean overflows(BigDecimal value, long precision) public static void checkOverflow(BigInteger value) { if (overflows(value)) { - throw new PrestoException(NUMERIC_VALUE_OUT_OF_RANGE, format("Value is out of range: %s", value.toString())); + throw new OutOfRangeException(format("Value is out of range: %s", value.toString())); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/DoubleType.java b/presto-common/src/main/java/com/facebook/presto/common/type/DoubleType.java similarity index 89% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/DoubleType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/DoubleType.java index 2b770ad15e072..9216ab7afc76d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/DoubleType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/DoubleType.java @@ -11,17 +11,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.lang.Double.doubleToLongBits; import static java.lang.Double.longBitsToDouble; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/FixedWidthType.java b/presto-common/src/main/java/com/facebook/presto/common/type/FixedWidthType.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/FixedWidthType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/FixedWidthType.java index 8750b6e9fdf07..dce56bfd49a29 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/FixedWidthType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/FixedWidthType.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; /** * FixedWidthType is a type that has a fixed size for every value. diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/FunctionType.java b/presto-common/src/main/java/com/facebook/presto/common/type/FunctionType.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/FunctionType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/FunctionType.java index 12dc2a95fce33..611cbde38db63 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/FunctionType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/FunctionType.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import java.util.ArrayList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/HyperLogLogType.java b/presto-common/src/main/java/com/facebook/presto/common/type/HyperLogLogType.java similarity index 88% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/HyperLogLogType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/HyperLogLogType.java index 600df474756a5..68e0bd364c482 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/HyperLogLogType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/HyperLogLogType.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.fasterxml.jackson.annotation.JsonCreator; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; // Layout is :, where // size: is a short describing the length of the hll bytes diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/IntegerType.java b/presto-common/src/main/java/com/facebook/presto/common/type/IntegerType.java similarity index 70% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/IntegerType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/IntegerType.java index 8ff3f971aee54..41a5578c14cd5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/IntegerType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/IntegerType.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static java.lang.String.format; public final class IntegerType extends AbstractIntType @@ -45,10 +45,10 @@ public Object getObjectValue(SqlFunctionProperties properties, Block block, int public final void writeLong(BlockBuilder blockBuilder, long value) { if (value > Integer.MAX_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d exceeds MAX_INT", value)); + throw new GenericInternalException(format("Value %d exceeds MAX_INT", value)); } else if (value < Integer.MIN_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d is less than MIN_INT", value)); + throw new GenericInternalException(format("Value %d is less than MIN_INT", value)); } blockBuilder.writeInt((int) value).closeEntry(); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/JsonType.java b/presto-common/src/main/java/com/facebook/presto/common/type/JsonType.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/JsonType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/JsonType.java index 36bdeb1f66d5d..a121fef481d16 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/JsonType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/JsonType.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/KdbTreeType.java b/presto-common/src/main/java/com/facebook/presto/common/type/KdbTreeType.java similarity index 71% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/KdbTreeType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/KdbTreeType.java index 2cc8cd9c19a27..4473fcf89450c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/KdbTreeType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/KdbTreeType.java @@ -11,15 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; - -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; public final class KdbTreeType extends AbstractType @@ -47,12 +45,12 @@ public void appendTo(Block block, int position, BlockBuilder blockBuilder) @Override public BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries, int expectedBytesPerEntry) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, "KdbTree type cannot be serialized"); + throw new GenericInternalException("KdbTree type cannot be serialized"); } @Override public BlockBuilder createBlockBuilder(BlockBuilderStatus blockBuilderStatus, int expectedEntries) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, "KdbTree type cannot be serialized"); + throw new GenericInternalException("KdbTree type cannot be serialized"); } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/LongDecimalType.java b/presto-common/src/main/java/com/facebook/presto/common/type/LongDecimalType.java similarity index 84% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/LongDecimalType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/LongDecimalType.java index d5d045f09b3e6..2852cfc3d20fd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/LongDecimalType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/LongDecimalType.java @@ -11,22 +11,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.Int128ArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.Int128ArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.block.Int128ArrayBlock.INT128_BYTES; -import static com.facebook.presto.spi.type.Decimals.MAX_PRECISION; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compare; +import static com.facebook.presto.common.block.Int128ArrayBlock.INT128_BYTES; +import static com.facebook.presto.common.type.Decimals.MAX_PRECISION; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.compare; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; final class LongDecimalType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/MapType.java b/presto-common/src/main/java/com/facebook/presto/common/type/MapType.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/MapType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/MapType.java index e6d27c5f2daa7..e594670e74b4e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/MapType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/MapType.java @@ -11,16 +11,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.AbstractMapBlock.HashTables; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.MapBlock; -import com.facebook.presto.spi.block.MapBlockBuilder; -import com.facebook.presto.spi.block.SingleMapBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.AbstractMapBlock.HashTables; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.MapBlock; +import com.facebook.presto.common.block.MapBlockBuilder; +import com.facebook.presto.common.block.SingleMapBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import java.lang.invoke.MethodHandle; import java.util.Collections; @@ -29,9 +29,9 @@ import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeUtils.checkElementNotNull; -import static com.facebook.presto.spi.type.TypeUtils.hashPosition; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeUtils.checkElementNotNull; +import static com.facebook.presto.common.type.TypeUtils.hashPosition; import static java.lang.String.format; import static java.util.Arrays.asList; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/NamedType.java b/presto-common/src/main/java/com/facebook/presto/common/type/NamedType.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/NamedType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/NamedType.java index 68ba1a01fb309..c3fd2610d9c73 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/NamedType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/NamedType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.Objects; import java.util.Optional; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/NamedTypeSignature.java b/presto-common/src/main/java/com/facebook/presto/common/type/NamedTypeSignature.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/NamedTypeSignature.java rename to presto-common/src/main/java/com/facebook/presto/common/type/NamedTypeSignature.java index 3f5f8d1e35899..d112d5323b4ca 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/NamedTypeSignature.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/NamedTypeSignature.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/P4HyperLogLogType.java b/presto-common/src/main/java/com/facebook/presto/common/type/P4HyperLogLogType.java similarity index 83% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/P4HyperLogLogType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/P4HyperLogLogType.java index 1f56e5c5c64d3..9dcab1b16ffc1 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/P4HyperLogLogType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/P4HyperLogLogType.java @@ -11,16 +11,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.fasterxml.jackson.annotation.JsonCreator; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class P4HyperLogLogType extends AbstractVariableWidthType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/ParameterKind.java b/presto-common/src/main/java/com/facebook/presto/common/type/ParameterKind.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/ParameterKind.java rename to presto-common/src/main/java/com/facebook/presto/common/type/ParameterKind.java index 2fd64d41cbe68..36cc40f0358e5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/ParameterKind.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/ParameterKind.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/ParametricType.java b/presto-common/src/main/java/com/facebook/presto/common/type/ParametricType.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/ParametricType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/ParametricType.java index 644df0e1331fe..22b272066ea5f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/ParametricType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/ParametricType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestParametricType.java b/presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestParametricType.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestParametricType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestParametricType.java index 26de566b60122..65f99432d06d4 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestParametricType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestParametricType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.List; public class QuantileDigestParametricType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestType.java b/presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestType.java similarity index 86% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestType.java index 5c82643a2815d..d08e2e76bb7e9 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/QuantileDigestType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/QuantileDigestType.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import static com.facebook.presto.spi.type.StandardTypes.QDIGEST; +import static com.facebook.presto.common.type.StandardTypes.QDIGEST; class QuantileDigestType extends StatisticalDigestType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/RealType.java b/presto-common/src/main/java/com/facebook/presto/common/type/RealType.java similarity index 82% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/RealType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/RealType.java index ad5cc0ef85a24..118caf4c6e67e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/RealType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/RealType.java @@ -11,15 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.lang.Float.floatToIntBits; import static java.lang.Float.intBitsToFloat; import static java.lang.Math.toIntExact; @@ -79,7 +78,7 @@ public void writeLong(BlockBuilder blockBuilder, long value) toIntExact(value); } catch (ArithmeticException e) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, format("Value (%sb) is not a valid single-precision float", Long.toBinaryString(value).replace(' ', '0'))); + throw new GenericInternalException(format("Value (%sb) is not a valid single-precision float", Long.toBinaryString(value).replace(' ', '0'))); } blockBuilder.writeInt((int) value).closeEntry(); } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/RowFieldName.java b/presto-common/src/main/java/com/facebook/presto/common/type/RowFieldName.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/RowFieldName.java rename to presto-common/src/main/java/com/facebook/presto/common/type/RowFieldName.java index f56f3247f8007..e908173bf7537 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/RowFieldName.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/RowFieldName.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/RowType.java b/presto-common/src/main/java/com/facebook/presto/common/type/RowType.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/RowType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/RowType.java index 6b170da6f7b8d..0d6c52f0a6044 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/RowType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/RowType.java @@ -11,15 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.NotSupportedException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import java.util.ArrayList; import java.util.Collections; @@ -27,7 +26,7 @@ import java.util.Optional; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.StandardTypes.ROW; import static java.util.Objects.requireNonNull; /** @@ -281,7 +280,7 @@ public long hash(Block block, int position) private static void checkElementNotNull(boolean isNull) { if (isNull) { - throw new PrestoException(StandardErrorCode.NOT_SUPPORTED, "ROW comparison not supported for fields with null elements"); + throw new NotSupportedException("ROW comparison not supported for fields with null elements"); } } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/ShortDecimalType.java b/presto-common/src/main/java/com/facebook/presto/common/type/ShortDecimalType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/ShortDecimalType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/ShortDecimalType.java index dec3d1de4216c..a0606adb2c229 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/ShortDecimalType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/ShortDecimalType.java @@ -11,19 +11,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import java.math.BigInteger; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; final class ShortDecimalType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SmallintType.java b/presto-common/src/main/java/com/facebook/presto/common/type/SmallintType.java similarity index 83% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SmallintType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SmallintType.java index 426757053335d..a57386447fe14 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SmallintType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SmallintType.java @@ -11,20 +11,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.ShortArrayBlockBuilder; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; - -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +package com.facebook.presto.common.type; + +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.ShortArrayBlockBuilder; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; + +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.lang.Long.rotateLeft; +import static java.lang.String.format; public final class SmallintType extends AbstractType @@ -143,10 +143,10 @@ public long getLongUnchecked(UncheckedBlock block, int internalPosition) public void writeLong(BlockBuilder blockBuilder, long value) { if (value > Short.MAX_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d exceeds MAX_SHORT", value)); + throw new GenericInternalException(format("Value %d exceeds MAX_SHORT", value)); } else if (value < Short.MIN_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d is less than MIN_SHORT", value)); + throw new GenericInternalException(format("Value %d is less than MIN_SHORT", value)); } blockBuilder.writeShort((int) value).closeEntry(); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDate.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlDate.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDate.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlDate.java index 0b5178f2152aa..8f350f9fbd992 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDate.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlDate.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDecimal.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlDecimal.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDecimal.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlDecimal.java index d18ebfd1c4aba..a5b42e4071631 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlDecimal.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlDecimal.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTime.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTime.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTime.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlTime.java index 007251a400815..11cb7ef2406f6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTime.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTime.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimeWithTimeZone.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimeWithTimeZone.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimeWithTimeZone.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlTimeWithTimeZone.java index 81659cf4c28c3..473892d48e9f2 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimeWithTimeZone.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimeWithTimeZone.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; @@ -21,8 +21,8 @@ import java.util.Objects; import java.util.TimeZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; public final class SqlTimeWithTimeZone { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestamp.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestamp.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestamp.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestamp.java index 9ae77854bd612..a3b81ef3c3b6c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestamp.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestamp.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; @@ -21,7 +21,7 @@ import java.util.Objects; import java.util.Optional; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; public final class SqlTimestamp { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestampWithTimeZone.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestampWithTimeZone.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestampWithTimeZone.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestampWithTimeZone.java index 94a5af853eefd..5d32cbc2417fa 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlTimestampWithTimeZone.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlTimestampWithTimeZone.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; @@ -21,8 +21,8 @@ import java.util.Objects; import java.util.TimeZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; public final class SqlTimestampWithTimeZone { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlVarbinary.java b/presto-common/src/main/java/com/facebook/presto/common/type/SqlVarbinary.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/SqlVarbinary.java rename to presto-common/src/main/java/com/facebook/presto/common/type/SqlVarbinary.java index 1792822c321da..8ba95a13fc9cd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/SqlVarbinary.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/SqlVarbinary.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/StandardTypes.java b/presto-common/src/main/java/com/facebook/presto/common/type/StandardTypes.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/StandardTypes.java rename to presto-common/src/main/java/com/facebook/presto/common/type/StandardTypes.java index daf44c57be814..75e9827cdfe96 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/StandardTypes.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/StandardTypes.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; public final class StandardTypes { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestParametricType.java b/presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestParametricType.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestParametricType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestParametricType.java index 9036abb4b746a..d1737ac78f6cd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestParametricType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestParametricType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestType.java b/presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestType.java similarity index 91% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestType.java index 1ffa83a074cda..b6bc3b3a1663c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/StatisticalDigestType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/StatisticalDigestType.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.fasterxml.jackson.annotation.JsonCreator; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestParametricType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TDigestParametricType.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestParametricType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TDigestParametricType.java index d829f21e411e0..d30b7928c27d2 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestParametricType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TDigestParametricType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TDigestType.java similarity index 86% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TDigestType.java index bf056df74a44c..015b9c362ade9 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TDigestType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TDigestType.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import static com.facebook.presto.spi.type.StandardTypes.TDIGEST; +import static com.facebook.presto.common.type.StandardTypes.TDIGEST; class TDigestType extends StatisticalDigestType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimeType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimeType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimeType.java index 3ab8cc45fc8d8..8a8ce60d7e6cb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimeType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; // // A time is stored as milliseconds from midnight on 1970-01-01T00:00:00 in the time zone of the session. diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeWithTimeZoneType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimeWithTimeZoneType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimeWithTimeZoneType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimeWithTimeZoneType.java index 7033d68063ef9..874a72ae6f905 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeWithTimeZoneType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimeWithTimeZoneType.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class TimeWithTimeZoneType extends AbstractLongType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneKey.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneKey.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneKey.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneKey.java index 344462d729771..b247d25f57a16 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneKey.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneKey.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; @@ -29,10 +29,10 @@ import java.util.Set; import java.util.TreeMap; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static java.lang.Character.isDigit; import static java.lang.Math.abs; import static java.lang.Math.max; +import static java.lang.String.format; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; @@ -140,7 +140,7 @@ public static TimeZoneKey getTimeZoneKeyForOffset(long offsetMinutes) } if (!(offsetMinutes >= OFFSET_TIME_ZONE_MIN && offsetMinutes <= OFFSET_TIME_ZONE_MAX)) { - throw new PrestoException(INVALID_FUNCTION_ARGUMENT, String.format("Invalid offset minutes %s", offsetMinutes)); + throw new InvalidFunctionArgumentException(format("Invalid offset minutes %s", offsetMinutes)); } TimeZoneKey timeZoneKey = OFFSET_TIME_ZONE_KEYS[((int) offsetMinutes) - OFFSET_TIME_ZONE_MIN]; if (timeZoneKey == null) { @@ -304,13 +304,13 @@ private static boolean isUtcEquivalentName(String zoneId) private static String zoneIdForOffset(long offset) { - return String.format("%s%02d:%02d", offset < 0 ? "-" : "+", abs(offset / 60), abs(offset % 60)); + return format("%s%02d:%02d", offset < 0 ? "-" : "+", abs(offset / 60), abs(offset % 60)); } private static void checkArgument(boolean check, String message, Object... args) { if (!check) { - throw new IllegalArgumentException(String.format(message, args)); + throw new IllegalArgumentException(format(message, args)); } } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneNotSupportedException.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneNotSupportedException.java similarity index 75% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneNotSupportedException.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneNotSupportedException.java index f8f59a61cf357..f60914f65f433 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimeZoneNotSupportedException.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimeZoneNotSupportedException.java @@ -11,20 +11,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.PrestoException; - -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; +package com.facebook.presto.common.type; public class TimeZoneNotSupportedException - extends PrestoException + extends RuntimeException { private final String zoneId; public TimeZoneNotSupportedException(String zoneId) { - super(NOT_SUPPORTED, "Time zone not supported: " + zoneId); + super("Time zone not supported: " + zoneId); this.zoneId = zoneId; } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimestampType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimestampType.java index 7a750f907f195..fb510735cf5fe 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimestampType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; // // A timestamp is stored as milliseconds from 1970-01-01T00:00:00 UTC. When performing calculations diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampWithTimeZoneType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TimestampWithTimeZoneType.java similarity index 87% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampWithTimeZoneType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TimestampWithTimeZoneType.java index 61740e4d079cb..95dd80a944f4b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TimestampWithTimeZoneType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TimestampWithTimeZoneType.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class TimestampWithTimeZoneType extends AbstractLongType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TinyintType.java b/presto-common/src/main/java/com/facebook/presto/common/type/TinyintType.java similarity index 83% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TinyintType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TinyintType.java index 479db86d7ed19..8b23a2a4561ee 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TinyintType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TinyintType.java @@ -11,20 +11,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; - -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.ByteArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; - -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +package com.facebook.presto.common.type; + +import com.facebook.presto.common.GenericInternalException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.ByteArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; + +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.lang.Long.rotateLeft; +import static java.lang.String.format; public final class TinyintType extends AbstractType @@ -143,10 +143,10 @@ public long getLongUnchecked(UncheckedBlock block, int internalPosition) public void writeLong(BlockBuilder blockBuilder, long value) { if (value > Byte.MAX_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d exceeds MAX_BYTE", value)); + throw new GenericInternalException(format("Value %d exceeds MAX_BYTE", value)); } else if (value < Byte.MIN_VALUE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, String.format("Value %d is less than MIN_BYTE", value)); + throw new GenericInternalException(format("Value %d is less than MIN_BYTE", value)); } blockBuilder.writeByte((int) value).closeEntry(); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/Type.java b/presto-common/src/main/java/com/facebook/presto/common/type/Type.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/Type.java rename to presto-common/src/main/java/com/facebook/presto/common/type/Type.java index 53fd8ded1f56a..c3ebac2b1c972 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/Type.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/Type.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.UncheckedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.UncheckedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.fasterxml.jackson.annotation.JsonValue; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeManager.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeManager.java index 8f4373a967381..f1f5b309681bb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeManager.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeManager.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.facebook.presto.common.function.OperatorType; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeParameter.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeParameter.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeParameter.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeParameter.java index 0db92160553f6..4f214a167e2ce 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeParameter.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeParameter.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.Objects; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSerde.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSerde.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSerde.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeSerde.java index 02f767b1c8ff3..d7f3ec0df2a1e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSerde.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSerde.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignature.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignature.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java index 6b6367a97ca87..9c2e4156a4240 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignature.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignatureParameter.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignatureParameter.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignatureParameter.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeSignatureParameter.java index 42f485287aafa..ab2b8c1e477a5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeSignatureParameter.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignatureParameter.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import java.util.Objects; import java.util.Optional; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeUtils.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeUtils.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/TypeUtils.java rename to presto-common/src/main/java/com/facebook/presto/common/type/TypeUtils.java index 6648110ccf1b4..b0853ec8cc750 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/TypeUtils.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeUtils.java @@ -11,16 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.NotSupportedException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; - public final class TypeUtils { public static final int NULL_HASH_CODE = 0; @@ -100,7 +98,7 @@ static long hashPosition(Type type, Block block, int position) static void checkElementNotNull(boolean isNull, String errorMsg) { if (isNull) { - throw new PrestoException(NOT_SUPPORTED, errorMsg); + throw new NotSupportedException(errorMsg); } } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/UnscaledDecimal128Arithmetic.java b/presto-common/src/main/java/com/facebook/presto/common/type/UnscaledDecimal128Arithmetic.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/UnscaledDecimal128Arithmetic.java rename to presto-common/src/main/java/com/facebook/presto/common/type/UnscaledDecimal128Arithmetic.java index c5e63af88da69..151b478e77aa5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/UnscaledDecimal128Arithmetic.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/UnscaledDecimal128Arithmetic.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -22,8 +22,8 @@ import java.math.BigInteger; import java.nio.ByteOrder; -import static com.facebook.presto.spi.type.Decimals.MAX_PRECISION; -import static com.facebook.presto.spi.type.Decimals.longTenToNth; +import static com.facebook.presto.common.type.Decimals.MAX_PRECISION; +import static com.facebook.presto.common.type.Decimals.longTenToNth; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; import static java.lang.String.format; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/VarbinaryType.java b/presto-common/src/main/java/com/facebook/presto/common/type/VarbinaryType.java similarity index 92% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/VarbinaryType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/VarbinaryType.java index bd3ce0c69e7f5..169d74b02d62c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/VarbinaryType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/VarbinaryType.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class VarbinaryType extends AbstractVariableWidthType diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/VarcharType.java b/presto-common/src/main/java/com/facebook/presto/common/type/VarcharType.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/VarcharType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/VarcharType.java index 0fccda949a8a9..468f87c9cde6c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/VarcharType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/VarcharType.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/Varchars.java b/presto-common/src/main/java/com/facebook/presto/common/type/Varchars.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/Varchars.java rename to presto-common/src/main/java/com/facebook/presto/common/type/Varchars.java index 6c50cad722b65..0884f0f919859 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/Varchars.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/Varchars.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/type/VariableWidthType.java b/presto-common/src/main/java/com/facebook/presto/common/type/VariableWidthType.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/type/VariableWidthType.java rename to presto-common/src/main/java/com/facebook/presto/common/type/VariableWidthType.java index 1faa61319de96..575c165b5d8a1 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/type/VariableWidthType.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/VariableWidthType.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; /** * VariableWidthType is a type that can have a different size for every value. diff --git a/presto-spi/src/main/resources/com/facebook/presto/spi/type/zone-index.properties b/presto-common/src/main/resources/com/facebook/presto/common/type/zone-index.properties similarity index 100% rename from presto-spi/src/main/resources/com/facebook/presto/spi/type/zone-index.properties rename to presto-common/src/main/resources/com/facebook/presto/common/type/zone-index.properties diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/BenchmarkComputePosition.java b/presto-common/src/test/java/com/facebook/presto/common/block/BenchmarkComputePosition.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/BenchmarkComputePosition.java rename to presto-common/src/test/java/com/facebook/presto/common/block/BenchmarkComputePosition.java index f8219879f9e87..714bf8a0cf30e 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/BenchmarkComputePosition.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/BenchmarkComputePosition.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/CountingArrayAllocator.java b/presto-common/src/test/java/com/facebook/presto/common/block/CountingArrayAllocator.java similarity index 97% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/CountingArrayAllocator.java rename to presto-common/src/test/java/com/facebook/presto/common/block/CountingArrayAllocator.java index ca49ba42008df..d4ff2154e498b 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/CountingArrayAllocator.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/CountingArrayAllocator.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; /** * Test class which always allocates a new array but keeps track of the number diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestArrayBlockBuilder.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestArrayBlockBuilder.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestArrayBlockBuilder.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestArrayBlockBuilder.java index 2921b22b4f12d..67fd8ebe3a6c1 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestArrayBlockBuilder.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestArrayBlockBuilder.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.openjdk.jol.info.ClassLayout; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockFlattenner.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockFlattenner.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockFlattenner.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestBlockFlattenner.java index 486293622e4bf..69553ef9901a6 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockFlattenner.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockFlattenner.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -25,11 +25,11 @@ import java.util.function.Consumer; import java.util.stream.IntStream; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertSame; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockRetainedSizeBreakdown.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockRetainedSizeBreakdown.java similarity index 92% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockRetainedSizeBreakdown.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestBlockRetainedSizeBreakdown.java index fda0a235217b2..fa7492e5066f9 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockRetainedSizeBreakdown.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockRetainedSizeBreakdown.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.DynamicSliceOutput; import it.unimi.dsi.fastutil.Hash.Strategy; import it.unimi.dsi.fastutil.objects.Object2LongOpenCustomHashMap; @@ -23,12 +23,12 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestBlockRetainedSizeBreakdown diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockUtil.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockUtil.java similarity index 91% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockUtil.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestBlockUtil.java index 79c023cf80921..f548fb27f7ab5 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestBlockUtil.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestBlockUtil.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.testng.annotations.Test; -import static com.facebook.presto.spi.block.BlockUtil.MAX_ARRAY_SIZE; +import static com.facebook.presto.common.block.BlockUtil.MAX_ARRAY_SIZE; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestClosingBlockLease.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestClosingBlockLease.java similarity index 93% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestClosingBlockLease.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestClosingBlockLease.java index fbcf6357e6272..b35ac11a6f3a1 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestClosingBlockLease.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestClosingBlockLease.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.testng.annotations.Test; -import static com.facebook.presto.spi.block.ClosingBlockLease.newLease; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.block.ClosingBlockLease.newLease; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.fail; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestDictionaryBlockEncoding.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestDictionaryBlockEncoding.java similarity index 85% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestDictionaryBlockEncoding.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestDictionaryBlockEncoding.java index 7bdef6df782d0..aefc0fb2473f2 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestDictionaryBlockEncoding.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestDictionaryBlockEncoding.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import io.airlift.slice.DynamicSliceOutput; import org.testng.annotations.Test; -import static com.facebook.presto.spi.block.TestingSession.SESSION; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.TestVariableWidthBlockEncoding.PROPERTIES; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; @@ -64,7 +64,7 @@ public void testRoundTrip() private static void assertBlockEquals(Type type, Block actual, Block expected) { for (int position = 0; position < actual.getPositionCount(); position++) { - assertEquals(type.getObjectValue(SESSION.getSqlFunctionProperties(), actual, position), type.getObjectValue(SESSION.getSqlFunctionProperties(), expected, position)); + assertEquals(type.getObjectValue(PROPERTIES, actual, position), type.getObjectValue(PROPERTIES, expected, position)); } } } diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestIntArrayList.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestIntArrayList.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestIntArrayList.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestIntArrayList.java index fce8db29b71c6..c32dc085373c7 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestIntArrayList.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestIntArrayList.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.testng.annotations.Test; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestMethodHandleUtil.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestMethodHandleUtil.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestMethodHandleUtil.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestMethodHandleUtil.java index 0fc5c31d1156f..b82aab5648cd1 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestMethodHandleUtil.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestMethodHandleUtil.java @@ -12,15 +12,15 @@ * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import org.testng.annotations.Test; import java.lang.invoke.MethodHandle; import java.util.Objects; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; import static com.google.common.base.MoreObjects.toStringHelper; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockBuilder.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockBuilder.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockBuilder.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockBuilder.java index a6d1b3a3c1c88..083c9d1a7e463 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockBuilder.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockBuilder.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.ceil; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockEncoding.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockEncoding.java similarity index 70% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockEncoding.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockEncoding.java index e28ac18a11da5..8ba1bc12ba8b3 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestVariableWidthBlockEncoding.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestVariableWidthBlockEncoding.java @@ -11,19 +11,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import io.airlift.slice.DynamicSliceOutput; import org.testng.annotations.Test; -import static com.facebook.presto.spi.block.TestingSession.SESSION; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static java.util.Locale.ENGLISH; import static org.testng.Assert.assertEquals; public class TestVariableWidthBlockEncoding { + public static final SqlFunctionProperties PROPERTIES = SqlFunctionProperties.builder().setTimeZoneKey(UTC_KEY).setLegacyTimestamp(true).setSessionStartTime(0).setSessionLocale(ENGLISH).setSessionUser("user").build(); private final BlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(new TestingTypeManager()); @Test @@ -45,7 +48,7 @@ public void testRoundTrip() private static void assertBlockEquals(Type type, Block actual, Block expected) { for (int position = 0; position < actual.getPositionCount(); position++) { - assertEquals(type.getObjectValue(SESSION.getSqlFunctionProperties(), actual, position), type.getObjectValue(SESSION.getSqlFunctionProperties(), expected, position)); + assertEquals(type.getObjectValue(PROPERTIES, actual, position), type.getObjectValue(PROPERTIES, expected, position)); } } } diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockEncodingSerde.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockEncodingSerde.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockEncodingSerde.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockEncodingSerde.java index 9de987b9c5701..45bb43c0580c7 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockEncodingSerde.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockEncodingSerde.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.google.common.collect.ImmutableSet; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockJsonSerde.java b/presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockJsonSerde.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockJsonSerde.java rename to presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockJsonSerde.java index 77875b075088b..3b45f203659e3 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingBlockJsonSerde.java +++ b/presto-common/src/test/java/com/facebook/presto/common/block/TestingBlockJsonSerde.java @@ -11,9 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.common.block; -import com.facebook.presto.spi.type.TestingTypeManager; +import com.facebook.presto.common.type.TestingTypeManager; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestArrayType.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestArrayType.java similarity index 88% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestArrayType.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestArrayType.java index ba1b0dcc4c75a..d9da469a45eb5 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestArrayType.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestArrayType.java @@ -11,11 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static org.testng.Assert.assertEquals; public class TestArrayType diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestChars.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestChars.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestChars.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestChars.java index 935b1120df5dd..1e33495e2e1f9 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestChars.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestChars.java @@ -11,13 +11,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.Chars.byteCountWithoutTrailingSpace; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.Chars.byteCountWithoutTrailingSpace; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestDecimals.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestDecimals.java similarity index 97% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestDecimals.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestDecimals.java index 5eb3616268f9a..75344896cfe8f 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestDecimals.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestDecimals.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -21,9 +21,9 @@ import java.math.BigInteger; import java.util.Objects; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeShortScaledValue; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeShortScaledValue; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestLongDecimalType.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestLongDecimalType.java similarity index 90% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestLongDecimalType.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestLongDecimalType.java index cc40430f1457e..668503eb0be2d 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestLongDecimalType.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestLongDecimalType.java @@ -11,17 +11,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; import java.math.BigDecimal; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; import static java.lang.Math.signum; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestMapType.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestMapType.java similarity index 86% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestMapType.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestMapType.java index ac2f2640f4dbd..8d0f8db384a3e 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestMapType.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestMapType.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.MethodHandleUtil; +import com.facebook.presto.common.block.MethodHandleUtil; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static org.testng.Assert.assertEquals; public class TestMapType diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestParameterKind.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestParameterKind.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestParameterKind.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestParameterKind.java index ae3cb079fc694..d9175c2a5e6e2 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestParameterKind.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestParameterKind.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestRowType.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestRowType.java similarity index 91% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestRowType.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestRowType.java index 44ddc1c03a1e0..160e8d1326871 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestRowType.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestRowType.java @@ -11,16 +11,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import org.testng.annotations.Test; import java.util.List; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.util.Arrays.asList; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestSqlDecimal.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestSqlDecimal.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestSqlDecimal.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestSqlDecimal.java index 076917a9676f7..afcae6ed2d5a0 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestSqlDecimal.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestSqlDecimal.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import org.testng.annotations.Test; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTimeZoneKey.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestTimeZoneKey.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestTimeZoneKey.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestTimeZoneKey.java index 58242426eb613..a28ff70ffeb8c 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTimeZoneKey.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestTimeZoneKey.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.google.common.collect.ImmutableSortedSet; import com.google.common.hash.Hasher; @@ -22,8 +22,8 @@ import java.util.Comparator; import java.util.SortedSet; -import static com.facebook.presto.spi.type.TimeZoneKey.MAX_TIME_ZONE_KEY; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.MAX_TIME_ZONE_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static java.util.Locale.ENGLISH; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSerde.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSerde.java similarity index 80% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSerde.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSerde.java index cda4188753fad..f4b3a31f001e7 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSerde.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSerde.java @@ -11,14 +11,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.DynamicSliceOutput; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSerde.readType; -import static com.facebook.presto.spi.type.TypeSerde.writeType; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSerde.readType; +import static com.facebook.presto.common.type.TypeSerde.writeType; import static org.testng.Assert.assertEquals; public class TestTypeSerde diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSignature.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java similarity index 97% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSignature.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java index 66805283c9878..d9302480d3884 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestTypeSignature.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -21,10 +21,10 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.google.common.collect.Lists.transform; import static java.util.Arrays.asList; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestUnscaledDecimal128Arithmetic.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestUnscaledDecimal128Arithmetic.java similarity index 95% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestUnscaledDecimal128Arithmetic.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestUnscaledDecimal128Arithmetic.java index 5a960e9ce6836..53c017055bd69 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestUnscaledDecimal128Arithmetic.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestUnscaledDecimal128Arithmetic.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.google.common.primitives.Bytes; import io.airlift.slice.Slice; @@ -24,30 +24,30 @@ import java.nio.IntBuffer; import java.util.Collections; -import static com.facebook.presto.spi.type.Decimals.MAX_DECIMAL_UNSCALED_VALUE; -import static com.facebook.presto.spi.type.Decimals.MIN_DECIMAL_UNSCALED_VALUE; -import static com.facebook.presto.spi.type.Decimals.bigIntegerTenToNth; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.add; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.addWithOverflow; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compare; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.divide; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.hash; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.isNegative; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.multiply; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.multiply256; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.overflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftLeft; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftLeftDestructive; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftLeftMultiPrecision; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftRight; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftRightArray8; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.shiftRightMultiPrecision; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.toUnscaledString; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; +import static com.facebook.presto.common.type.Decimals.MAX_DECIMAL_UNSCALED_VALUE; +import static com.facebook.presto.common.type.Decimals.MIN_DECIMAL_UNSCALED_VALUE; +import static com.facebook.presto.common.type.Decimals.bigIntegerTenToNth; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.add; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.addWithOverflow; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.compare; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.divide; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.hash; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.isNegative; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.multiply; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.multiply256; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.overflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftLeft; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftLeftDestructive; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftLeftMultiPrecision; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftRight; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftRightArray8; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.shiftRightMultiPrecision; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.toUnscaledString; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; import static io.airlift.slice.Slices.wrappedIntArray; import static io.airlift.slice.Slices.wrappedLongArray; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingIdType.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestingIdType.java similarity index 85% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestingIdType.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestingIdType.java index 5058dbfbdb7da..cd9ce0c80de53 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingIdType.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestingIdType.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class TestingIdType extends AbstractLongType diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeDeserializer.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeDeserializer.java similarity index 91% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeDeserializer.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeDeserializer.java index f007681856895..1a73d9ba2e2dc 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeDeserializer.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeDeserializer.java @@ -11,12 +11,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public final class TestingTypeDeserializer diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeManager.java similarity index 78% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java rename to presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeManager.java index 11658a8b6f65a..5616b6efeb4f3 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/TestingTypeManager.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestingTypeManager.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import com.facebook.presto.common.function.OperatorType; import com.google.common.collect.ImmutableList; @@ -21,15 +21,15 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.TestingIdType.ID; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.TestingIdType.ID; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class TestingTypeManager implements TypeManager diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/type/VarcharsTest.java b/presto-common/src/test/java/com/facebook/presto/common/type/VarcharsTest.java similarity index 96% rename from presto-spi/src/test/java/com/facebook/presto/spi/type/VarcharsTest.java rename to presto-common/src/test/java/com/facebook/presto/common/type/VarcharsTest.java index 8d73d6bda2bfc..d4ca570488b25 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/type/VarcharsTest.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/VarcharsTest.java @@ -11,15 +11,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.type; +package com.facebook.presto.common.type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.type.Varchars.byteCount; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.Varchars.byteCount; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; import static org.testng.Assert.assertEquals; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java index 0c4b38c586ecf..c0caf6a2c333b 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidAggregationProjectConverter.java @@ -14,6 +14,7 @@ package com.facebook.presto.druid; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.FunctionMetadataManager; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import org.joda.time.DateTimeZone; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java index 707356e7d590f..4298c8a8e50f5 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java @@ -14,18 +14,18 @@ package com.facebook.presto.druid; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.druid.DruidQueryGenerator.GeneratedDql; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidColumnHandle.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidColumnHandle.java index cbd536014daf0..0c30eb6b9db9d 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidColumnHandle.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidColumnHandle.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnectorFactory.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnectorFactory.java index bf3e25b32f7ec..5445f83cd46c0 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnectorFactory.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConnectorFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import java.util.Map; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java index a872d913f5d11..e0275464f943d 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java @@ -14,6 +14,9 @@ package com.facebook.presto.druid; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.druid.DruidQueryGeneratorContext.Origin; import com.facebook.presto.druid.DruidQueryGeneratorContext.Selection; import com.facebook.presto.spi.ConnectorSession; @@ -30,9 +33,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import java.util.List; @@ -41,10 +41,10 @@ import java.util.function.Function; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; import static com.facebook.presto.druid.DruidErrorCode.DRUID_PUSHDOWN_UNSUPPORTED_EXPRESSION; import static com.facebook.presto.druid.DruidExpression.derived; import static com.facebook.presto.druid.DruidPushdownUtils.getLiteralAsString; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; import static java.lang.String.format; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java index 7ad751784070e..6bfc9a00a7d76 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.type.Type; import com.facebook.presto.druid.metadata.DruidColumnInfo; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -37,12 +37,12 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.druid.DruidTableHandle.fromSchemaTableName; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPlanOptimizer.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPlanOptimizer.java index b217ba16a68a0..b403becc838bf 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPlanOptimizer.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPlanOptimizer.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPlanOptimizer; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import javax.inject.Inject; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidProjectExpressionConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidProjectExpressionConverter.java index 64fe048b72c48..ce24e01db17e2 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidProjectExpressionConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidProjectExpressionConverter.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.druid.DruidQueryGeneratorContext.Selection; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionHandle; @@ -25,9 +28,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import java.util.Map; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPushdownUtils.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPushdownUtils.java index 979af8fdcc9d3..ef34a1eb51929 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPushdownUtils.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPushdownUtils.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -40,10 +40,10 @@ import java.util.List; import java.util.Set; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; import static com.facebook.presto.druid.DruidAggregationColumnNode.AggregationFunctionColumnNode; import static com.facebook.presto.druid.DruidAggregationColumnNode.GroupByColumnNode; import static com.facebook.presto.druid.DruidErrorCode.DRUID_PUSHDOWN_UNSUPPORTED_EXPRESSION; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; import static com.google.common.base.Preconditions.checkState; import static java.lang.Float.intBitsToFloat; import static java.lang.String.format; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java index bf672f40be711..5aa1bf74c50d2 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java @@ -14,6 +14,8 @@ package com.facebook.presto.druid; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.druid.DruidQueryGeneratorContext.Selection; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableMap; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java index 8912907204171..e01b3da61f9ed 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.druid.segment.DruidSegmentReader; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/ColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/ColumnReader.java index b25e0d7a59ca6..5ff07f5fbae0f 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/ColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/ColumnReader.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.druid.column; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import org.apache.druid.segment.ColumnValueSelector; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.druid.DruidErrorCode.DRUID_UNSUPPORTED_TYPE_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.String.format; public interface ColumnReader diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/DoubleColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/DoubleColumnReader.java index 0757872ce2eec..0b4fdc4ea6ad0 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/DoubleColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/DoubleColumnReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.druid.column; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.apache.druid.segment.ColumnValueSelector; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/FloatColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/FloatColumnReader.java index 5fa3cbb1d192e..48d3b393e70c1 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/FloatColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/FloatColumnReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.druid.column; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.apache.druid.segment.ColumnValueSelector; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Float.floatToRawIntBits; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/LongColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/LongColumnReader.java index f918c3d571cb0..1fa28c62c2b2c 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/LongColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/LongColumnReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.druid.column; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.apache.druid.segment.ColumnValueSelector; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java index 63ac6f6a51b34..a6e5afd300e2a 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.druid.column; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slices; import org.apache.druid.segment.ColumnValueSelector; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/TimestampColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/TimestampColumnReader.java index 40d1c0a78a648..2f2ad74d40220 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/TimestampColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/TimestampColumnReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.druid.column; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.apache.druid.segment.ColumnValueSelector; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/segment/DruidSegmentReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/segment/DruidSegmentReader.java index 6acf5d0739b99..07369867f7e8b 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/segment/DruidSegmentReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/segment/DruidSegmentReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.druid.segment; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.druid.DruidColumnHandle; import com.facebook.presto.druid.column.ColumnReader; import com.facebook.presto.druid.column.SimpleReadableOffset; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import org.apache.druid.segment.ColumnValueSelector; import org.apache.druid.segment.QueryableIndex; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/segment/SegmentReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/segment/SegmentReader.java index f5c0153e95fd3..a5f6bae282e6a 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/segment/SegmentReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/segment/SegmentReader.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.druid.segment; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; public interface SegmentReader { diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidColumnHandle.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidColumnHandle.java index c99fd36e7ff56..cf7fc50e59ad0 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidColumnHandle.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidColumnHandle.java @@ -16,11 +16,11 @@ import com.facebook.airlift.testing.EquivalenceTester; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.druid.DruidColumnHandle.DruidColumnType.DERIVED; import static com.facebook.presto.druid.DruidColumnHandle.DruidColumnType.REGULAR; import static com.facebook.presto.druid.TestingMetadataUtil.COLUMN_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestDruidColumnHandle diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java index af39431228c42..1d79a2293466c 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java @@ -16,6 +16,9 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -25,7 +28,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; @@ -39,8 +41,6 @@ import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.ParsingOptions; @@ -64,13 +64,13 @@ import java.util.Optional; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.druid.DruidColumnHandle.DruidColumnType.REGULAR; import static com.facebook.presto.druid.DruidQueryGeneratorContext.Origin.DERIVED; import static com.facebook.presto.druid.DruidQueryGeneratorContext.Origin.TABLE_COLUMN; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestingMetadataUtil.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestingMetadataUtil.java index 98dfd9c48a6de..9cc838bc9d902 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestingMetadataUtil.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestingMetadataUtil.java @@ -16,8 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; @@ -25,11 +25,11 @@ import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchClient.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchClient.java index 843a53c72a614..af8e64c038b8f 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchClient.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchClient.java @@ -15,11 +15,11 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -60,15 +60,15 @@ import java.util.concurrent.ExecutorService; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RowType.Field; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.elasticsearch.ElasticsearchErrorCode.ELASTICSEARCH_CORRUPTED_MAPPING_METADATA; import static com.facebook.presto.elasticsearch.RetryDriver.retry; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RowType.Field; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.floragunn.searchguard.ssl.util.SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_ENFORCE_HOSTNAME_VERIFICATION; import static com.floragunn.searchguard.ssl.util.SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_FILEPATH; import static com.floragunn.searchguard.ssl.util.SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_PASSWORD; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumn.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumn.java index 875b8e66a5ea8..4acab752d2560 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumn.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumn.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.elasticsearch; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumnHandle.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumnHandle.java index 9213e56f7ca2f..286de62754a35 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumnHandle.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.elasticsearch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorFactory.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorFactory.java index 35e5bb5abfab6..55b5a8c1efb03 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorFactory.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorFactory.java @@ -15,12 +15,12 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import com.google.inject.Scopes; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorModule.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorModule.java index 24f37376b9bbd..9e5a57c75f395 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorModule.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchConnectorModule.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.elasticsearch; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.decoder.DecoderModule; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -31,7 +31,7 @@ import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java index b1f966f70d3ee..74a600e15e3df 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java @@ -14,12 +14,12 @@ package com.facebook.presto.elasticsearch; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.units.Duration; import org.elasticsearch.action.search.SearchRequestBuilder; @@ -40,13 +40,13 @@ import java.util.List; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.elasticsearch.ElasticsearchClient.createTransportClient; import static com.facebook.presto.elasticsearch.ElasticsearchErrorCode.ELASTICSEARCH_CONNECTION_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordCursor.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordCursor.java index 14963e7c489c3..0c2ba9ce007b3 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordCursor.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordCursor.java @@ -14,9 +14,9 @@ package com.facebook.presto.elasticsearch; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; @@ -36,14 +36,14 @@ import java.util.Set; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.elasticsearch.ElasticsearchErrorCode.ELASTICSEARCH_MAX_HITS_EXCEEDED; import static com.facebook.presto.elasticsearch.ElasticsearchUtils.serializeObject; import static com.facebook.presto.elasticsearch.RetryDriver.retry; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.EMPTY_SLICE; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordSet.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordSet.java index bb67c99bc72a6..7c331d4fa97c0 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordSet.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.elasticsearch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchUtils.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchUtils.java index 7c6502a2548cf..55e8975f9748b 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchUtils.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchUtils.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.elasticsearch; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/CodecSupplier.java b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/CodecSupplier.java index aee5d99a92d43..6cda591ee58b4 100644 --- a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/CodecSupplier.java +++ b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/CodecSupplier.java @@ -16,15 +16,15 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.function.Supplier; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public final class CodecSupplier diff --git a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/ElasticsearchLoader.java b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/ElasticsearchLoader.java index 9621328cb73ef..76889ce6ec430 100644 --- a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/ElasticsearchLoader.java +++ b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/ElasticsearchLoader.java @@ -17,9 +17,9 @@ import com.facebook.presto.client.Column; import com.facebook.presto.client.QueryData; import com.facebook.presto.client.QueryStatusInfo; +import com.facebook.presto.common.type.Type; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.PrestoWarning; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.tests.AbstractTestingPrestoClient; import com.facebook.presto.tests.ResultsSession; import org.elasticsearch.client.Client; @@ -32,12 +32,12 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicReference; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; import static org.elasticsearch.client.Requests.flushRequest; diff --git a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestElasticsearchIntegrationSmokeTest.java b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestElasticsearchIntegrationSmokeTest.java index 02b592c4a834f..20e9ce05b93bf 100644 --- a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestElasticsearchIntegrationSmokeTest.java +++ b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestElasticsearchIntegrationSmokeTest.java @@ -26,9 +26,9 @@ import java.io.IOException; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.elasticsearch.ElasticsearchQueryRunner.createElasticsearchQueryRunner; import static com.facebook.presto.elasticsearch.EmbeddedElasticsearchNode.createEmbeddedElasticsearchNode; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static java.lang.String.format; diff --git a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestingElasticsearchConnectorFactory.java b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestingElasticsearchConnectorFactory.java index bba402034f3d9..e3a82034bf058 100644 --- a/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestingElasticsearchConnectorFactory.java +++ b/presto-elasticsearch/src/test/java/com/facebook/presto/elasticsearch/TestingElasticsearchConnectorFactory.java @@ -15,11 +15,11 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import java.util.Map; diff --git a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumn.java b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumn.java index 9677645b9e3b0..bc652523d7b58 100644 --- a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumn.java +++ b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumn.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.example; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumnHandle.java b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumnHandle.java index 9561c698e4740..b896fa39f6114 100644 --- a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumnHandle.java +++ b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.example; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleModule.java b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleModule.java index e8395e7272a20..0b8409342203c 100644 --- a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleModule.java +++ b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleModule.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.example; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -27,7 +27,7 @@ import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public class ExampleModule diff --git a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordCursor.java b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordCursor.java index d5b218c2a0958..b506ae8615dab 100644 --- a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordCursor.java +++ b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordCursor.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.example; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.io.ByteSource; @@ -27,10 +27,10 @@ import java.util.Iterator; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordSet.java b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordSet.java index 8b6fba6d23704..310e4e09c366f 100644 --- a/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordSet.java +++ b/presto-example-http/src/main/java/com/facebook/presto/example/ExampleRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.example; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.io.ByteSource; import com.google.common.io.Resources; diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/MetadataUtil.java b/presto-example-http/src/test/java/com/facebook/presto/example/MetadataUtil.java index 3813a209bcefa..ccabca5b341c2 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/MetadataUtil.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/MetadataUtil.java @@ -16,8 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; @@ -26,11 +26,11 @@ import java.util.Map; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static java.util.Locale.ENGLISH; public final class MetadataUtil diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleClient.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleClient.java index fee152472e867..64b4ae36633f1 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleClient.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleClient.java @@ -21,9 +21,9 @@ import java.net.URI; import java.net.URL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.example.MetadataUtil.CATALOG_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleColumnHandle.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleColumnHandle.java index 13dc5354da6fe..0a618d9139d4a 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleColumnHandle.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleColumnHandle.java @@ -16,9 +16,9 @@ import com.facebook.airlift.testing.EquivalenceTester; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.example.MetadataUtil.COLUMN_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestExampleColumnHandle diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleMetadata.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleMetadata.java index 4ca7e73431162..e0d557d54f206 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleMetadata.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleMetadata.java @@ -28,9 +28,9 @@ import java.net.URL; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.example.MetadataUtil.CATALOG_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSet.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSet.java index 5ffd18a3d683c..2d05a6b59011e 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSet.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSet.java @@ -25,8 +25,8 @@ import java.util.LinkedHashMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSetProvider.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSetProvider.java index f4d90f06e44e5..9c79b3e36aa0c 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSetProvider.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleRecordSetProvider.java @@ -25,8 +25,8 @@ import java.util.LinkedHashMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleTable.java b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleTable.java index 543efa7813d64..6923928ed1d0b 100644 --- a/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleTable.java +++ b/presto-example-http/src/test/java/com/facebook/presto/example/TestExampleTable.java @@ -19,9 +19,9 @@ import java.net.URI; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.example.MetadataUtil.TABLE_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestExampleTable diff --git a/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java b/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java index ed9dceaa2b80a..56535a3fc1320 100644 --- a/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java +++ b/presto-expressions/src/main/java/com/facebook/presto/expressions/LogicalRowExpressions.java @@ -47,9 +47,9 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static java.lang.Math.min; import static java.util.Arrays.asList; import static java.util.Arrays.stream; diff --git a/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java b/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java index 1d650d936e984..c25a006d3f0f6 100644 --- a/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java +++ b/presto-expressions/src/main/java/com/facebook/presto/expressions/translator/TranslatorAnnotationParser.java @@ -16,11 +16,11 @@ import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -38,9 +38,9 @@ import java.util.Set; import java.util.stream.Stream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.function.FunctionImplementationType.BUILTIN; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.CaseFormat.LOWER_CAMEL; import static com.google.common.base.CaseFormat.LOWER_UNDERSCORE; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/FunctionNamespaceDao.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/FunctionNamespaceDao.java index ef4dc92a98c69..8b592abc29797 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/FunctionNamespaceDao.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/FunctionNamespaceDao.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.functionNamespace.mysql; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.RoutineCharacteristics; import com.facebook.presto.spi.function.SqlFunctionId; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; -import com.facebook.presto.spi.type.TypeSignature; import org.jdbi.v3.sqlobject.config.RegisterArgumentFactories; import org.jdbi.v3.sqlobject.config.RegisterArgumentFactory; import org.jdbi.v3.sqlobject.config.RegisterRowMapper; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java index 847c3d7c30161..4d5871de23950 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/MySqlFunctionNamespaceManager.java @@ -15,6 +15,7 @@ import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.functionNamespace.AbstractSqlInvokedFunctionNamespaceManager; import com.facebook.presto.functionNamespace.InvalidFunctionHandleException; import com.facebook.presto.functionNamespace.ServingCatalog; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.function.SqlFunctionId; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; -import com.facebook.presto.spi.type.TypeSignature; import org.jdbi.v3.core.Jdbi; import javax.annotation.PostConstruct; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java index 62258e8e385cf..d3195abc66a68 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/SqlInvokedFunctionRowMapper.java @@ -29,7 +29,7 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class SqlInvokedFunctionRowMapper implements RowMapper diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/TypeSignatureArgumentFactory.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/TypeSignatureArgumentFactory.java index 01baa0140d997..76a8b14327238 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/TypeSignatureArgumentFactory.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/mysql/TypeSignatureArgumentFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.functionNamespace.mysql; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import org.jdbi.v3.core.argument.AbstractArgumentFactory; import org.jdbi.v3.core.argument.Argument; import org.jdbi.v3.core.argument.ObjectArgument; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java index bc94d750f0344..2235a24726da0 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/InMemoryFunctionNamespaceManager.java @@ -14,6 +14,7 @@ package com.facebook.presto.functionNamespace.testing; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.functionNamespace.AbstractSqlInvokedFunctionNamespaceManager; import com.facebook.presto.functionNamespace.SqlInvokedFunctionNamespaceManagerConfig; import com.facebook.presto.spi.PrestoException; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.function.SqlFunctionHandle; import com.facebook.presto.spi.function.SqlFunctionId; import com.facebook.presto.spi.function.SqlInvokedFunction; -import com.facebook.presto.spi.type.TypeSignature; import javax.annotation.concurrent.ThreadSafe; diff --git a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java index 3fe530a7e1aa8..cd9535700387b 100644 --- a/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java +++ b/presto-function-namespace-managers/src/main/java/com/facebook/presto/functionNamespace/testing/SqlInvokedFunctionTestUtils.java @@ -22,11 +22,11 @@ import java.util.Optional; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.function.RoutineCharacteristics.Determinism.DETERMINISTIC; import static com.facebook.presto.spi.function.RoutineCharacteristics.NullCallClause.RETURNS_NULL_ON_NULL_INPUT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; public class SqlInvokedFunctionTestUtils { diff --git a/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java b/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java index 527bb7b34aceb..bc552f902bed5 100644 --- a/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java +++ b/presto-function-namespace-managers/src/test/java/com/facebook/presto/functionNamespace/mysql/TestMySqlFunctionNamespaceManager.java @@ -17,6 +17,7 @@ import com.facebook.airlift.bootstrap.LifeCycleManager; import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.function.SqlFunctionId; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.testing.mysql.TestingMySqlServer; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -50,6 +50,8 @@ import java.util.Optional; import static com.facebook.airlift.testing.Closeables.closeQuietly; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.functionNamespace.testing.SqlInvokedFunctionTestUtils.FUNCTION_POWER_TOWER_DOUBLE; import static com.facebook.presto.functionNamespace.testing.SqlInvokedFunctionTestUtils.FUNCTION_POWER_TOWER_DOUBLE_UPDATED; import static com.facebook.presto.functionNamespace.testing.SqlInvokedFunctionTestUtils.FUNCTION_POWER_TOWER_INT; @@ -63,8 +65,6 @@ import static com.facebook.presto.spi.function.RoutineCharacteristics.Determinism.DETERMINISTIC; import static com.facebook.presto.spi.function.RoutineCharacteristics.NullCallClause.CALLED_ON_NULL_INPUT; import static com.facebook.presto.spi.function.RoutineCharacteristics.NullCallClause.RETURNS_NULL_ON_NULL_INPUT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Throwables.throwIfUnchecked; import static java.lang.String.format; import static java.util.Collections.nCopies; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java index afe0535fa0069..8cc95cd191b98 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java @@ -16,21 +16,23 @@ import com.esri.core.geometry.Envelope; import com.esri.core.geometry.Point; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.geospatial.GeometryUtils.contains; import static com.facebook.presto.geospatial.GeometryUtils.disjoint; import static com.facebook.presto.geospatial.GeometryUtils.getEnvelope; @@ -42,8 +44,6 @@ import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java index c5b3d5740b64f..7b0d7ab3882d8 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileOperators.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.XxHash64; import static com.facebook.presto.common.function.OperatorType.EQUAL; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileType.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileType.java index 865b9593c61e8..1104a9c992229 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileType.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.plugin.geospatial; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.TypeSignature; public class BingTileType extends AbstractLongType diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java index 6bd1fa960bf38..c4c5ca0a4dd0a 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoFunctions.java @@ -24,20 +24,20 @@ import com.esri.core.geometry.ogc.OGCConcreteGeometryCollection; import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCLineString; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.KdbTreeType; import com.facebook.presto.geospatial.GeometryType; import com.facebook.presto.geospatial.KdbTree; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.geospatial.serde.GeometrySerializationType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.KdbTreeType; import com.google.common.base.Joiner; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; @@ -73,6 +73,13 @@ import static com.esri.core.geometry.NonSimpleResult.Reason.OGCPolygonSelfTangency; import static com.esri.core.geometry.NonSimpleResult.Reason.OGCPolylineSelfTangency; import static com.esri.core.geometry.ogc.OGCGeometry.createFromEsriGeometry; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.TINYINT; +import static com.facebook.presto.common.type.StandardTypes.VARBINARY; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.geospatial.GeometryType.LINE_STRING; import static com.facebook.presto.geospatial.GeometryType.MULTI_LINE_STRING; import static com.facebook.presto.geospatial.GeometryType.MULTI_POINT; @@ -97,13 +104,6 @@ import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.TINYINT; -import static com.facebook.presto.spi.type.StandardTypes.VARBINARY; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoPlugin.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoPlugin.java index a44efc500f736..1ec8ace335ac0 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoPlugin.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeoPlugin.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.Type; import com.facebook.presto.plugin.geospatial.BingTileFunctions.BingTileCoordinatesFunction; import com.facebook.presto.plugin.geospatial.aggregation.ConvexHullAggregation; import com.facebook.presto.plugin.geospatial.aggregation.GeometryUnionAgg; import com.facebook.presto.spi.Plugin; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.util.Set; +import static com.facebook.presto.common.type.KdbTreeType.KDB_TREE; import static com.facebook.presto.plugin.geospatial.BingTileType.BING_TILE; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.plugin.geospatial.SphericalGeographyType.SPHERICAL_GEOGRAPHY; -import static com.facebook.presto.spi.type.KdbTreeType.KDB_TREE; public class GeoPlugin implements Plugin diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeometryType.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeometryType.java index f386dee0883db..c2603fd1a732a 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeometryType.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/GeometryType.java @@ -14,12 +14,12 @@ package com.facebook.presto.plugin.geospatial; import com.esri.core.geometry.GeometryException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.TypeSignature; import io.airlift.slice.Slice; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.deserialize; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java index 576df064d3642..8b5f6e703681f 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/KdbTreeCasts.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.KdbTreeType; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.KdbTreeType; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningAggregateFunction.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningAggregateFunction.java index 3b79e882ea2b5..00b63eac87900 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningAggregateFunction.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningAggregateFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.plugin.geospatial; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningInternalAggregateFunction.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningInternalAggregateFunction.java index 3083db1253f46..07eb2d4261fee 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningInternalAggregateFunction.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningInternalAggregateFunction.java @@ -14,30 +14,30 @@ package com.facebook.presto.plugin.geospatial; import com.esri.core.geometry.Envelope; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.geospatial.KdbTree.buildKdbTree; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.deserializeEnvelope; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; import static com.facebook.presto.plugin.geospatial.SpatialPartitioningAggregateFunction.NAME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.Math.toIntExact; @AggregationFunction(value = NAME, decomposable = false, visibility = HIDDEN) diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningStateSerializer.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningStateSerializer.java index 39f62e0c779a8..adace302ec157 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningStateSerializer.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SpatialPartitioningStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.geospatial; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class SpatialPartitioningStateSerializer implements AccumulatorStateSerializer diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeoFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeoFunctions.java index c29e708bf29d8..113004574b705 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeoFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeoFunctions.java @@ -23,21 +23,23 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCGeometryCollection; import com.esri.core.geometry.ogc.OGCPoint; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.KdbTreeType; import com.facebook.presto.geospatial.KdbTree; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.geospatial.SphericalGeographyUtils; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.KdbTreeType; import io.airlift.slice.Slice; import java.util.EnumSet; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.geospatial.GeometryType.LINE_STRING; import static com.facebook.presto.geospatial.GeometryType.MULTI_LINE_STRING; import static com.facebook.presto.geospatial.GeometryType.MULTI_POINT; @@ -56,8 +58,6 @@ import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY_TYPE_NAME; import static com.facebook.presto.plugin.geospatial.SphericalGeographyType.SPHERICAL_GEOGRAPHY_TYPE_NAME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Double.isInfinite; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeographyType.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeographyType.java index 92134955f05e4..7bebf6e6f3b59 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeographyType.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/SphericalGeographyType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.plugin.geospatial; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.TypeSignature; import io.airlift.slice.Slice; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.deserialize; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/ConvexHullAggregation.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/ConvexHullAggregation.java index da3b23352d22c..5e2a33ee7e231 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/ConvexHullAggregation.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/ConvexHullAggregation.java @@ -14,10 +14,10 @@ package com.facebook.presto.plugin.geospatial.aggregation; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.geospatial.GeometryType; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryStateSerializer.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryStateSerializer.java index 83649fda1fd31..9221b698c401a 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryStateSerializer.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryStateSerializer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.plugin.geospatial.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryUnionAgg.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryUnionAgg.java index 6991e416a6171..fd6f7cda1f845 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryUnionAgg.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/aggregation/GeometryUnionAgg.java @@ -14,8 +14,8 @@ package com.facebook.presto.plugin.geospatial.aggregation; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java index 3852e80a766da..9848089efd9d4 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; @@ -32,6 +32,11 @@ import java.util.List; import static com.facebook.presto.block.BlockAssertions.createTypedLongsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.scalar.ApplyFunction.APPLY_FUNCTION; @@ -40,11 +45,6 @@ import static com.facebook.presto.plugin.geospatial.BingTileFunctions.MAX_LATITUDE; import static com.facebook.presto.plugin.geospatial.BingTileFunctions.MIN_LONGITUDE; import static com.facebook.presto.plugin.geospatial.BingTileType.BING_TILE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static java.lang.String.format; import static java.util.Collections.emptyList; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialInnerJoin.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialInnerJoin.java index 539d5a9779885..a4c9d16b6db9a 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialInnerJoin.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialInnerJoin.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.planner.iterative.rule.ExtractSpatialJoins.ExtractSpatialInnerJoin; @@ -29,10 +29,10 @@ import java.util.Arrays; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.plugin.geospatial.SphericalGeographyType.SPHERICAL_GEOGRAPHY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.project; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.spatialJoin; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialLeftJoin.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialLeftJoin.java index 2b4106957010d..483820bb7f970 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialLeftJoin.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestExtractSpatialLeftJoin.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.planner.assertions.PlanMatchPattern; @@ -29,10 +29,10 @@ import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.plugin.geospatial.SphericalGeographyType.SPHERICAL_GEOGRAPHY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.project; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.spatialLeftJoin; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoFunctions.java index 7ae0fb00e74a2..e24a28f7df317 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoFunctions.java @@ -16,13 +16,13 @@ import com.esri.core.geometry.Point; import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCPoint; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -31,16 +31,16 @@ import java.util.List; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.geospatial.KdbTree.buildKdbTree; import static com.facebook.presto.plugin.geospatial.GeoFunctions.stCentroid; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoRelations.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoRelations.java index 70272a5b46670..05c888b965752 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoRelations.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestGeoRelations.java @@ -22,7 +22,7 @@ import java.util.List; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static java.lang.String.format; public class TestGeoRelations diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestKdbTreeCasts.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestKdbTreeCasts.java index 916e3016edd51..c552dc7bbe3f0 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestKdbTreeCasts.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestKdbTreeCasts.java @@ -20,8 +20,8 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.geospatial.KdbTree.buildKdbTree; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.String.format; public class TestKdbTreeCasts diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java index 6c7798247f5f6..389d3e184f15a 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java @@ -58,15 +58,15 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.geospatial.KdbTree.Node.newInternal; import static com.facebook.presto.geospatial.KdbTree.Node.newLeaf; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEqualsIgnoreOrder; import static com.facebook.presto.plugin.geospatial.GeoFunctions.stGeometryFromText; import static com.facebook.presto.plugin.geospatial.GeoFunctions.stPoint; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.plan.SpatialJoinNode.Type.INNER; import static com.facebook.presto.sql.planner.plan.SpatialJoinNode.Type.LEFT; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java index 468d10d2921c7..cb8679579a1fc 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java @@ -18,6 +18,8 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCPoint; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.metadata.FunctionManager; @@ -28,8 +30,6 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import org.testng.annotations.BeforeClass; @@ -39,6 +39,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.geospatial.KdbTree.buildKdbTree; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.serialize; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.createGroupByIdBlock; @@ -46,7 +47,6 @@ import static com.facebook.presto.operator.aggregation.AggregationTestUtils.getGroupValue; import static com.facebook.presto.plugin.geospatial.GeometryType.GEOMETRY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.math.DoubleMath.roundToInt; import static java.math.RoundingMode.CEILING; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSphericalGeoFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSphericalGeoFunctions.java index 7ec4198c56ab3..e11ae59e40754 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSphericalGeoFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSphericalGeoFunctions.java @@ -15,10 +15,10 @@ import com.esri.core.geometry.Point; import com.esri.core.geometry.ogc.OGCPoint; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -31,11 +31,11 @@ import java.util.Map; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; import static com.facebook.presto.plugin.geospatial.SphericalGeoFunctions.toSphericalGeography; import static com.facebook.presto.plugin.geospatial.SphericalGeographyType.SPHERICAL_GEOGRAPHY; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java index 782ec2c337a1e..22fd534ea536c 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java @@ -15,13 +15,13 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.plugin.geospatial.GeoPlugin; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.testng.annotations.BeforeClass; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/TestGeometryStateSerializer.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/TestGeometryStateSerializer.java index 7cacf9f89da87..1e51e5c137fc6 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/TestGeometryStateSerializer.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/TestGeometryStateSerializer.java @@ -14,10 +14,10 @@ package com.facebook.presto.plugin.geospatial.aggregation; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.aggregation.state.StateCompiler; import com.facebook.presto.plugin.geospatial.GeometryType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import org.testng.annotations.Test; diff --git a/presto-hive-metastore/pom.xml b/presto-hive-metastore/pom.xml index 0309874c920ef..7694d6949a28e 100644 --- a/presto-hive-metastore/pom.xml +++ b/presto-hive-metastore/pom.xml @@ -26,6 +26,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.facebook.presto presto-hive-common diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveType.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveType.java index 935f131a69eb0..534ff214996c3 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveType.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import com.google.common.collect.ImmutableList; @@ -38,21 +38,21 @@ import java.util.Locale; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static java.lang.String.format; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/TypeTranslator.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/TypeTranslator.java index 0222cd1be620f..f7603d58de4e8 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/TypeTranslator.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/TypeTranslator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; public interface TypeTranslator diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java index 1f5af82adc2f9..e6c6c0d22a067 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.ForCachingHiveMetastore; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.MetastoreClientConfig; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java index 017ba1ec22689..3ae891935cacf 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Map; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java index 4e6fcbde94de8..6d29fbb365f2c 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java @@ -13,6 +13,26 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveBasicStatistics; @@ -24,28 +44,8 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.CharMatcher; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -82,6 +82,19 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.padSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveErrorCode.HIVE_FILESYSTEM_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_PARTITION_VALUE; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; @@ -92,19 +105,6 @@ import static com.facebook.presto.spi.statistics.ColumnStatisticType.NUMBER_OF_NON_NULL_VALUES; import static com.facebook.presto.spi.statistics.ColumnStatisticType.NUMBER_OF_TRUE_VALUES; import static com.facebook.presto.spi.statistics.ColumnStatisticType.TOTAL_SIZE_IN_BYTES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.padSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.base.Strings.padEnd; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java index 1e11a955f194c..86e0eb693c2ea 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.metastore; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.ForRecordingHiveMetastore; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.MetastoreClientConfig; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java index a661e540b49bc..bceeab178dc85 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.metastore; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveBasicStatistics; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.security.PrincipalType; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SortingColumn.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SortingColumn.java index 5dd2b7e6a9cc0..717653db1a3ce 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SortingColumn.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SortingColumn.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.SortOrder; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -22,11 +22,11 @@ import java.util.Objects; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.metastore.SortingColumn.Order.ASCENDING; import static com.facebook.presto.hive.metastore.SortingColumn.Order.DESCENDING; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java index f9ca4734d631b..2f6a8de3c15b3 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.statistics.ColumnStatisticMetadata; import com.facebook.presto.spi.statistics.ColumnStatisticType; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import org.joda.time.DateTimeZone; @@ -40,6 +40,14 @@ import java.util.OptionalLong; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.hive.HiveBasicStatistics.createZeroStatistics; import static com.facebook.presto.hive.HiveErrorCode.HIVE_UNKNOWN_COLUMN_STATISTIC_TYPE; import static com.facebook.presto.hive.metastore.MetastoreUtil.createPartitionValues; @@ -53,14 +61,6 @@ import static com.facebook.presto.spi.statistics.ColumnStatisticType.NUMBER_OF_NON_NULL_VALUES; import static com.facebook.presto.spi.statistics.ColumnStatisticType.NUMBER_OF_TRUE_VALUES; import static com.facebook.presto.spi.statistics.ColumnStatisticType.TOTAL_SIZE_IN_BYTES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java index f4fb30ba90c07..340e044505a4b 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java @@ -18,6 +18,7 @@ import alluxio.grpc.table.ColumnStatisticsInfo; import alluxio.grpc.table.Constraint; import alluxio.grpc.table.layout.hive.PartitionInfo; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.metastore.Column; @@ -40,7 +41,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.inject.Inject; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java index dc3ce0a47cc33..30df9c9bf76bb 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.metastore.file; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveBasicStatistics; @@ -42,7 +43,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java index 955037c47697f..baa40363d5985 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java @@ -53,6 +53,7 @@ import com.amazonaws.services.glue.model.UpdatePartitionRequest; import com.amazonaws.services.glue.model.UpdateTableRequest; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveType; @@ -81,7 +82,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java index 1bac20bfda3f0..b9a5b706e1353 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Database; @@ -32,7 +33,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import org.apache.hadoop.hive.metastore.api.FieldSchema; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java index 73f1d032e07b5..251c7ba507dcd 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.HivePrivilegeInfo; import com.facebook.presto.hive.metastore.PartitionStatistics; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import org.apache.hadoop.hive.metastore.api.Database; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.metastore.api.Partition; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java index 27e83e4cecf71..53aa088111248 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.HiveViewNotSupportedException; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java index b4012df354448..6b849b08e165d 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveBucketProperty; import com.facebook.presto.hive.HiveType; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -40,14 +40,14 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.hive.HiveBasicStatistics.createEmptyStatistics; import static com.facebook.presto.hive.metastore.MetastoreUtil.convertPredicateToParts; import static com.facebook.presto.hive.metastore.PrestoTableType.OTHER; import static com.facebook.presto.spi.security.PrincipalType.USER; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MAX_VALUE; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MIN_VALUE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java index 14da194b4675a..a1cfc7967af61 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Map; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java index 24cf727a784a1..9f4ff89e0f33a 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.SchemaAlreadyExistsException; import com.facebook.presto.hive.TableAlreadyExistsException; import com.facebook.presto.hive.metastore.Column; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index f4a54a892588e..205ce45c40e24 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -300,6 +300,13 @@ test + + com.facebook.presto + presto-common + test-jar + test + + com.facebook.presto presto-main diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/CreateEmptyPartitionProcedure.java b/presto-hive/src/main/java/com/facebook/presto/hive/CreateEmptyPartitionProcedure.java index 1b2e3e9e9c1b4..f6326f393d3e0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/CreateEmptyPartitionProcedure.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/CreateEmptyPartitionProcedure.java @@ -36,10 +36,10 @@ import java.util.Optional; import java.util.function.Supplier; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.ALREADY_EXISTS; import static com.facebook.presto.spi.StandardErrorCode.INVALID_PROCEDURE_ARGUMENT; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java index da2b94b03bffe..15650acdc46eb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.orc.FilterFunction; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import io.airlift.slice.Slice; import java.io.IOException; @@ -40,23 +40,23 @@ import java.util.function.Function; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression; import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; import static com.facebook.presto.orc.TupleDomainFilterUtils.toFilter; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.lang.Double.longBitsToDouble; import static java.lang.Float.intBitsToFloat; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursor.java index 6387fd3541dea..612a69c5c0872 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursor.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hadoop.TextLineLengthLimitExceededException; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.hadoop.conf.Configuration; @@ -51,6 +51,21 @@ import java.util.Properties; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.rescale; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; @@ -59,21 +74,6 @@ import static com.facebook.presto.hive.HiveUtil.getTableObjectInspector; import static com.facebook.presto.hive.HiveUtil.isStructuralType; import static com.facebook.presto.hive.util.SerDeUtils.getBlockObject; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.rescale; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java index 81a3dae489c3e..aa08d408a850a 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Writable; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveAnalyzeProperties.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveAnalyzeProperties.java index 51491161e965b..6b759cac964e2 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveAnalyzeProperties.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveAnalyzeProperties.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import javax.inject.Inject; @@ -25,9 +25,9 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.metastore.MetastoreUtil.HIVE_DEFAULT_DYNAMIC_PARTITION; import static com.facebook.presto.spi.StandardErrorCode.INVALID_ANALYZE_PROPERTY; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketAdapterRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketAdapterRecordCursor.java index e45f6f3bca4a2..0d54c7343c728 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketAdapterRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketAdapterRecordCursor.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import io.airlift.slice.Slice; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java index aaf3607606875..9b8dfd71bb4c8 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Table; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java index e954c94a60f0f..b4e165fc55597 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercer.java @@ -14,20 +14,20 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo; @@ -35,6 +35,15 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; +import static com.facebook.presto.common.block.ColumnarMap.toColumnarMap; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.hive.HiveType.HIVE_BYTE; import static com.facebook.presto.hive.HiveType.HIVE_DOUBLE; import static com.facebook.presto.hive.HiveType.HIVE_FLOAT; @@ -49,15 +58,6 @@ import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; -import static com.facebook.presto.spi.block.ColumnarMap.toColumnarMap; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.intBitsToFloat; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionPolicy.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionPolicy.java index 107ec0d5c2aa5..da9e8ec98c392 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionPolicy.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionPolicy.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; import org.apache.hadoop.hive.serde2.typeinfo.ListTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java index ae95fd3126cb0..5c8d2d31a2d09 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HivePageSourceProvider.ColumnMapping; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java index 33bcb57cdceff..e5ec1de0e631a 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveColumnHandle.java @@ -14,10 +14,10 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; @@ -26,12 +26,12 @@ import java.util.Objects; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.SYNTHESIZED; import static com.facebook.presto.hive.HiveType.HIVE_INT; import static com.facebook.presto.hive.HiveType.HIVE_LONG; import static com.facebook.presto.hive.HiveType.HIVE_STRING; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnectorFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnectorFactory.java index c47114cb0804d..d9e1d3c6997b3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnectorFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveConnectorFactory.java @@ -17,6 +17,8 @@ import com.facebook.airlift.bootstrap.LifeCycleManager; import com.facebook.airlift.event.client.EventModule; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.authentication.HiveAuthenticationModule; import com.facebook.presto.hive.gcs.HiveGcsModule; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; @@ -28,7 +30,6 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorAccessControl; @@ -48,7 +49,6 @@ import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.procedure.Procedure; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import com.google.inject.Injector; import com.google.inject.Key; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveDecimalParser.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveDecimalParser.java index 4371ef1886714..e9ae3a3ee881d 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveDecimalParser.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveDecimalParser.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.type.DecimalType; import java.math.BigDecimal; -import static com.facebook.presto.spi.type.Decimals.rescale; +import static com.facebook.presto.common.type.Decimals.rescale; import static java.math.RoundingMode.HALF_UP; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 256eaa41ba2b0..3dc433f42de1c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -15,6 +15,10 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.LocationService.WriteInfo; import com.facebook.presto.hive.PartitionUpdate.FileWriteInfo; @@ -59,7 +63,6 @@ import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.ViewNotFoundException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorPartitioningMetadata; @@ -83,9 +86,6 @@ import com.facebook.presto.spi.statistics.TableStatisticType; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Functions; import com.google.common.base.Joiner; @@ -136,6 +136,7 @@ import java.util.stream.Stream; import static com.facebook.airlift.concurrent.MoreFutures.toCompletableFuture; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.binaryExpression; import static com.facebook.presto.hive.HiveAnalyzeProperties.getPartitionList; @@ -242,7 +243,6 @@ import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.security.PrincipalType.USER; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java index bb64bd4b43d97..631fa380b37b1 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadataFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.metastore.CachingHiveMetastore; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; import com.facebook.presto.hive.metastore.SemiTransactionalHiveMetastore; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.util.concurrent.ListeningExecutorService; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveNodePartitioningProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveNodePartitioningProvider.java index 6afbed34b8923..63ba31ba242fb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveNodePartitioningProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.function.ToIntFunction; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java index 5865bcc0a15cf..5265a2d266b07 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java @@ -16,16 +16,16 @@ import com.facebook.airlift.concurrent.MoreFutures; import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.IntArrayBlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.Futures; @@ -46,9 +46,9 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.hive.HiveErrorCode.HIVE_TOO_MANY_OPEN_PARTITIONS; import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITER_CLOSE_ERROR; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Verify.verify; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java index 8b4cde6b6cfea..31e87eb3c4ef6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSinkProvider.java @@ -15,6 +15,7 @@ import com.facebook.airlift.event.client.EventClient; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; import com.facebook.presto.hive.metastore.HivePageSinkMetadataProvider; import com.facebook.presto.hive.metastore.SortingColumn; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.ListeningExecutorService; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java index c0674b947cd0b..dd19ba785ccbf 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HivePageSourceProvider.ColumnMapping; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.annotations.VisibleForTesting; import it.unimi.dsi.fastutil.ints.IntArrayList; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java index 0ff76c2014ad7..8a5c8012e88a8 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveSplit.BucketConversion; import com.facebook.presto.hive.metastore.Column; @@ -32,8 +34,6 @@ import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java index 84e5836265d2a..6043310b42665 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.SemiTransactionalHiveMetastore; @@ -27,10 +31,6 @@ import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Predicates; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursor.java index 37c6da89a96d3..07dd593cb4529 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursor.java @@ -13,18 +13,31 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HivePageSourceProvider.ColumnMapping; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.Slice; import org.joda.time.DateTimeZone; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HivePageSourceProvider.ColumnMappingKind.PREFILLED; import static com.facebook.presto.hive.HivePageSourceProvider.ColumnMappingKind.REGULAR; import static com.facebook.presto.hive.HiveUtil.bigintPartitionKey; @@ -41,19 +54,6 @@ import static com.facebook.presto.hive.HiveUtil.tinyintPartitionKey; import static com.facebook.presto.hive.HiveUtil.varcharPartitionKey; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static java.lang.String.format; import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Objects.requireNonNull; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java index bf178e7959eac..a7661a878045a 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java index e5fb20187542b..9a0e8a0107594 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSessionProperties.java @@ -26,6 +26,9 @@ import java.util.List; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.hive.HiveSessionProperties.InsertExistingPartitionsBehavior.APPEND; import static com.facebook.presto.hive.HiveSessionProperties.InsertExistingPartitionsBehavior.ERROR; import static com.facebook.presto.hive.HiveSessionProperties.InsertExistingPartitionsBehavior.OVERWRITE; @@ -33,9 +36,6 @@ import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Locale.ENGLISH; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableProperties.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableProperties.java index 7d6359de20155..2ecf6269f4a0e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableProperties.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableProperties.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.metastore.SortingColumn; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import javax.inject.Inject; @@ -27,12 +27,12 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.StandardErrorCode.INVALID_TABLE_PROPERTY; import static com.facebook.presto.spi.session.PropertyMetadata.doubleProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; import static java.util.Locale.ENGLISH; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTypeTranslator.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTypeTranslator.java index 50727d52efe95..762d1149fcf45 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTypeTranslator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTypeTranslator.java @@ -13,19 +13,29 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import org.apache.hadoop.hive.common.type.HiveChar; import org.apache.hadoop.hive.common.type.HiveVarchar; import org.apache.hadoop.hive.serde2.typeinfo.DecimalTypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.hive.HiveType.HIVE_BINARY; import static com.facebook.presto.hive.HiveType.HIVE_BOOLEAN; import static com.facebook.presto.hive.HiveType.HIVE_BYTE; @@ -41,16 +51,6 @@ import static com.facebook.presto.hive.metastore.MetastoreUtil.isMapType; import static com.facebook.presto.hive.metastore.MetastoreUtil.isRowType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static java.lang.String.format; import static java.util.stream.Collectors.toList; import static org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory.getCharTypeInfo; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java index 0420b637fb482..710d72b254887 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java @@ -13,6 +13,17 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hadoop.TextLineLengthLimitExceededException; import com.facebook.presto.hive.avro.PrestoAvroSerDe; import com.facebook.presto.hive.metastore.Column; @@ -26,17 +37,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.VerifyException; @@ -98,6 +98,21 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.trimTrailingSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveColumnHandle.MAX_PARTITION_KEY_COLUMN_INDEX; @@ -120,21 +135,6 @@ import static com.facebook.presto.hive.util.ConfigurationUtils.toJobConf; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.trimTrailingSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java index cae39a0dae2ed..d94960660c257 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java @@ -13,6 +13,21 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.RecordFileWriter.ExtendedRecordWriter; import com.facebook.presto.hive.metastore.Database; @@ -26,21 +41,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; @@ -97,6 +97,7 @@ import java.util.Optional; import java.util.Properties; +import static com.facebook.presto.common.type.Chars.isCharType; import static com.facebook.presto.hive.HiveErrorCode.HIVE_DATABASE_LOCATION_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_FILESYSTEM_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_SERDE_NOT_FOUND; @@ -115,7 +116,6 @@ import static com.facebook.presto.hive.metastore.PrestoTableType.MANAGED_TABLE; import static com.facebook.presto.hive.metastore.PrestoTableType.TEMPORARY_TABLE; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.Chars.isCharType; import static java.lang.Float.intBitsToFloat; import static java.lang.Math.toIntExact; import static java.lang.String.format; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java index 39b0d2c695d8e..22b23ef430984 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java @@ -14,6 +14,9 @@ package com.facebook.presto.hive; import com.facebook.airlift.event.client.EventClient; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveSessionProperties.InsertExistingPartitionsBehavior; import com.facebook.presto.hive.LocationService.WriteInfo; @@ -30,10 +33,7 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.base.Splitter; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java b/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java index 63644c628ba8d..34463ff4b77dc 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import io.airlift.slice.Slice; import org.joda.time.format.DateTimeFormatter; @@ -28,12 +28,12 @@ import java.util.ArrayList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableList.Builder; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java index a1061518f6ca7..2437365a6f4dc 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.orc.OrcEncoding; @@ -23,10 +27,6 @@ import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriterFactory.java index 3b7f2f03b7990..7cfb3d34be2a0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriterFactory.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.metastore.MetastoreUtil; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.hive.orc.HdfsOrcDataSource; @@ -26,8 +28,6 @@ import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import org.apache.hadoop.fs.FileSystem; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java index 1d3e696c3a567..5c2b9dd35fdbf 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.AircompressorCodecFactory; import com.facebook.presto.rcfile.HadoopCodecFactory; import com.facebook.presto.rcfile.RcFileDataSource; @@ -20,10 +24,6 @@ import com.facebook.presto.rcfile.RcFileWriter; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.io.CountingOutputStream; import io.airlift.slice.OutputStreamSliceOutput; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriterFactory.java index 51a15b07c89be..b5e4383f5e9a3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriterFactory.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.metastore.MetastoreUtil; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.hive.rcfile.HdfsRcFileDataSource; @@ -21,8 +23,6 @@ import com.facebook.presto.rcfile.binary.BinaryRcFileEncoding; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableMap; import org.apache.hadoop.fs.FileSystem; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java index 16349af52c343..c7bee68f41b4e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveWriteUtils.FieldSetter; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursor.java index f6e88e12bf890..fe0c1268ee010 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursor.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Writable; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java index cd899ee0e8b28..0bcae46a3c600 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.s3.PrestoS3ClientFactory; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java index e959d3038ee10..fb037f82592b9 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.orc.HdfsOrcDataSource; import com.facebook.presto.hive.util.MergingPageIterator; import com.facebook.presto.hive.util.SortBuffer; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriterFactory.java index 05468b87c0819..84dc4fef5c0b3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriterFactory.java @@ -14,11 +14,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; import org.apache.hadoop.fs.FileSystem; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java index 64318d983221e..af736fc333e10 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SubfieldExtractor.java @@ -14,6 +14,10 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.StandardFunctionResolution; @@ -24,10 +28,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -38,11 +38,11 @@ import java.util.Optional; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveSessionProperties.isRangeFiltersOnSubscriptsEnabled; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Verify.verify; import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java index 45236f60aeccf..a867ab71f5fad 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.orc; import com.facebook.hive.orc.OrcSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java index 72e496cbf0768..5b8ee306a6c4a 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java @@ -15,6 +15,7 @@ import com.facebook.hive.orc.OrcSerde; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.BucketAdaptation; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java index fc668ef78416b..2219bf1323567 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.orc.OrcAggregatedMemoryContext; @@ -22,12 +28,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.io.IOException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java index b24f38e7c44b5..4a58883e6e9a3 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; @@ -38,8 +40,6 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java index 2775b12cfb140..31b6f2a2e8035 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java @@ -14,6 +14,9 @@ package com.facebook.presto.hive.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.hive.BucketAdaptation; import com.facebook.presto.hive.FileFormatDataSourceStats; @@ -45,7 +48,6 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; @@ -57,8 +59,6 @@ import com.facebook.presto.spi.relation.RowExpressionService; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java index d15b312090bf3..724a96c1795ec 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; import org.apache.hadoop.fs.FSDataInputStream; import java.io.IOException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java index cbf5f85f604f6..cf78ccde72698 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; import com.facebook.presto.hive.HiveColumnHandle; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java index 168250dda4695..8c392276a2a56 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriterFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.hive.HiveFileWriter; @@ -24,7 +25,6 @@ import com.facebook.presto.orc.zlib.InflateDecompressor; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PageCompressor; import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java index b021df97223a4..1cefe1c5fb30c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.hive.parquet; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.parquet.Field; import com.facebook.presto.parquet.ParquetCorruptionException; @@ -20,12 +26,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import org.apache.parquet.io.MessageColumnIO; import org.apache.parquet.schema.MessageType; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index c4f87e054f5a3..e7b042d1f51d4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -14,6 +14,10 @@ package com.facebook.presto.hive.parquet; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; @@ -32,10 +36,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -65,6 +65,20 @@ import java.util.Set; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.CHAR; +import static com.facebook.presto.common.type.StandardTypes.DATE; +import static com.facebook.presto.common.type.StandardTypes.DECIMAL; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.REAL; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.StandardTypes.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; +import static com.facebook.presto.common.type.StandardTypes.TINYINT; +import static com.facebook.presto.common.type.StandardTypes.VARBINARY; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CANNOT_OPEN_SPLIT; @@ -81,20 +95,6 @@ import static com.facebook.presto.parquet.ParquetTypeUtils.getSubfieldType; import static com.facebook.presto.parquet.predicate.PredicateUtils.buildPredicate; import static com.facebook.presto.parquet.predicate.PredicateUtils.predicateMatches; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.CHAR; -import static com.facebook.presto.spi.type.StandardTypes.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DECIMAL; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.REAL; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.StandardTypes.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; -import static com.facebook.presto.spi.type.StandardTypes.TINYINT; -import static com.facebook.presto.spi.type.StandardTypes.VARBINARY; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.nullToEmpty; import static java.lang.String.format; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java index 1de869b585e42..00aa4da303a10 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java @@ -13,6 +13,13 @@ */ package com.facebook.presto.hive.rcfile; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveType; import com.facebook.presto.rcfile.RcFileCorruptionException; @@ -20,13 +27,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java index 3487816fe9d8e..8db0b5e012b18 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.rcfile; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/HiveStatisticsProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/HiveStatisticsProvider.java index 539250431e021..0c7a721e5e5e0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/HiveStatisticsProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/HiveStatisticsProvider.java @@ -14,12 +14,12 @@ package com.facebook.presto.hive.statistics; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HivePartition; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Map; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java index 389dee571f951..fb7ff209175ca 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java @@ -15,6 +15,9 @@ package com.facebook.presto.hive.statistics; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HivePartition; @@ -34,9 +37,6 @@ import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableMap; @@ -59,22 +59,22 @@ import java.util.OptionalLong; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CORRUPTED_COLUMN_STATISTICS; import static com.facebook.presto.hive.HivePartition.UNPARTITIONED_ID; import static com.facebook.presto.hive.HiveSessionProperties.getPartitionStatisticsSampleSize; import static com.facebook.presto.hive.HiveSessionProperties.isIgnoreCorruptedStatistics; import static com.facebook.presto.hive.HiveSessionProperties.isStatisticsEnabled; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/DecimalUtils.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/DecimalUtils.java index 80cd36ab5e580..2cda4bab40d92 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/DecimalUtils.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/DecimalUtils.java @@ -18,8 +18,8 @@ import java.math.BigInteger; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.rescale; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.rescale; public final class DecimalUtils { diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java index a1389fb77092f..b7068d40842ec 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/SerDeUtils.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/SerDeUtils.java index 725c7fc4a30b9..209824be0c5eb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/SerDeUtils.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/SerDeUtils.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.hive.util; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.Slices; import org.apache.hadoop.hive.common.type.HiveChar; @@ -61,8 +61,8 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Float.floatToRawIntBits; import static java.util.Objects.requireNonNull; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java index cce1eafd6e21a..a1d2eca6dfc69 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java index 571e9981c4324..7b3eb4990999f 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveOrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; @@ -23,8 +25,6 @@ import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.AbstractIterator; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java index 36f8ed5f3e1c4..1548116e58725 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; import com.facebook.presto.orc.OrcWriter; import com.facebook.presto.orc.OrcWriterOptions; import com.facebook.presto.orc.OrcWriterStats; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index acaa48622deb5..32e42bf21e395 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -18,6 +18,18 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.presto.GroupByHashPageIndexerFactory; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.LocationService.WriteInfo; import com.facebook.presto.hive.authentication.NoHdfsAuthentication; @@ -74,7 +86,6 @@ import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.ViewNotFoundException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; @@ -82,7 +93,6 @@ import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingContext; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.Range; @@ -94,16 +104,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; @@ -164,6 +164,26 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.airlift.testing.Assertions.assertLessThanOrEqual; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.AbstractTestHiveClient.TransactionDeleteInsertTestTag.COMMIT; import static com.facebook.presto.hive.AbstractTestHiveClient.TransactionDeleteInsertTestTag.ROLLBACK_AFTER_APPEND_PAGE; @@ -247,26 +267,6 @@ import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.security.PrincipalType.USER; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.facebook.presto.sql.planner.VariablesExtractor.extractUnique; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java index 641e80e9f8be4..44bde66dabcc2 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java @@ -14,28 +14,28 @@ package com.facebook.presto.hive; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockSerdeUtil; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.BlockSerdeUtil; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.tests.StructuralTestUtil; @@ -86,6 +86,19 @@ import java.util.Properties; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveTestUtils.SESSION; @@ -95,19 +108,6 @@ import static com.facebook.presto.hive.metastore.MetastoreUtil.HIVE_DEFAULT_DYNAMIC_PARTITION; import static com.facebook.presto.hive.util.ConfigurationUtils.configureCompression; import static com.facebook.presto.hive.util.SerDeUtils.serializeObject; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.MaterializedResult.materializeSourceDataStream; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java index ccfbf8ceed18d..d41418dbf5fd0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileSystem.java @@ -84,6 +84,7 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.hive.AbstractTestHiveClient.createTableProperties; import static com.facebook.presto.hive.AbstractTestHiveClient.filterNonHiddenColumnHandles; import static com.facebook.presto.hive.AbstractTestHiveClient.filterNonHiddenColumnMetadata; @@ -101,7 +102,6 @@ import static com.facebook.presto.hive.HiveTestUtils.getTypes; import static com.facebook.presto.spi.SplitContext.NON_CACHEABLE; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.testing.MaterializedResult.materializeSourceDataStream; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/HiveTestUtils.java b/presto-hive/src/test/java/com/facebook/presto/hive/HiveTestUtils.java index 880c46024fdd0..f5df9376bafb0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/HiveTestUtils.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/HiveTestUtils.java @@ -15,6 +15,13 @@ import com.facebook.presto.PagesIndexPageSorter; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.cost.ConnectorFilterStatsCalculatorService; import com.facebook.presto.cost.FilterStatsCalculator; import com.facebook.presto.cost.ScalarStatsCalculator; @@ -49,13 +56,6 @@ import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.RowExpressionPredicateCompiler; import com.facebook.presto.sql.planner.planPrinter.RowExpressionFormatter; @@ -73,7 +73,7 @@ import java.util.List; import java.util.Set; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; import static java.util.stream.Collectors.toList; public final class HiveTestUtils diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java index feffd8e1f4ac0..f7f28d5360ee5 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java @@ -55,6 +55,8 @@ import java.util.concurrent.TimeUnit; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.hive.BackgroundHiveSplitLoader.BucketSplitInfo.createBucketSplitInfo; import static com.facebook.presto.hive.HiveTestUtils.SESSION; import static com.facebook.presto.hive.HiveType.HIVE_INT; @@ -62,8 +64,6 @@ import static com.facebook.presto.hive.HiveUtil.getRegularColumnHandles; import static com.facebook.presto.hive.metastore.PrestoTableType.MANAGED_TABLE; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java index 6e29188febf88..af581b923dd0f 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestCoercingFilters.java @@ -21,8 +21,8 @@ import com.facebook.presto.orc.TupleDomainFilter.BytesRange; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java index 48cbd59234bf0..d63acaf938d40 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java @@ -15,6 +15,10 @@ import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionHandle; @@ -29,10 +33,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.relational.FunctionResolution; import com.facebook.presto.sql.relational.RowExpressionDomainTranslator; import com.facebook.presto.testing.TestingConnectorSession; @@ -50,6 +50,10 @@ import static com.facebook.presto.block.BlockAssertions.createArrayBigintBlock; import static com.facebook.presto.block.BlockAssertions.createMapBlock; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; @@ -58,10 +62,6 @@ import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java index bd30648cf2cc8..6ee6e940c5555 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; @@ -45,8 +45,8 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.Math.toIntExact; import static java.util.Arrays.asList; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveColumnHandle.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveColumnHandle.java index c94cc113dcf75..2323c010e54f6 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveColumnHandle.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveColumnHandle.java @@ -14,14 +14,14 @@ package com.facebook.presto.hive; import com.facebook.airlift.json.JsonCodec; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.type.StandardTypes; import org.testng.annotations.Test; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static org.testng.Assert.assertEquals; public class TestHiveColumnHandle diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveDecimalParser.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveDecimalParser.java index 8ba1334499181..a6272bfab29b2 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveDecimalParser.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveDecimalParser.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.type.DecimalType; import org.testng.annotations.Test; import java.math.BigDecimal; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index e4ad95de9374d..e7027cd966725 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.hive.metastore.StorageFormat; @@ -31,8 +33,6 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -65,6 +65,11 @@ import java.util.TimeZone; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_PARTITION_VALUE; import static com.facebook.presto.hive.HiveErrorCode.HIVE_PARTITION_SCHEMA_MISMATCH; @@ -84,11 +89,6 @@ import static com.facebook.presto.hive.HiveTestUtils.SESSION; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; import static com.facebook.presto.hive.HiveTestUtils.getTypes; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.rowBlockOf; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index 2f65304d86f44..47de9edf2c91f 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.hive.HiveSessionProperties.InsertExistingPartitionsBehavior; import com.facebook.presto.metadata.InsertTableHandle; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.plan.MarkDistinctNode; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig.PartialMergePushdownStrategy; import com.facebook.presto.sql.planner.Plan; import com.facebook.presto.sql.planner.plan.ExchangeNode; @@ -81,6 +81,16 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.PARTIAL_MERGE_PUSHDOWN_STRATEGY; import static com.facebook.presto.SystemSessionProperties.PARTITIONING_PROVIDER_CATALOG; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.hive.HiveColumnHandle.BUCKET_COLUMN_NAME; import static com.facebook.presto.hive.HiveColumnHandle.PATH_COLUMN_NAME; import static com.facebook.presto.hive.HiveQueryRunner.HIVE_CATALOG; @@ -102,16 +112,6 @@ import static com.facebook.presto.hive.HiveUtil.columnExtraInfo; import static com.facebook.presto.spi.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.spi.security.SelectedRole.Type.ROLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.BROADCAST; import static com.facebook.presto.sql.analyzer.FeaturesConfig.PartialMergePushdownStrategy.PUSH_THROUGH_LOW_MEMORY_OPERATORS; import static com.facebook.presto.sql.planner.optimizations.PlanNodeSearcher.searchFrom; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java index 8c0c0f655cc79..c372e3ed4ac49 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.Plan; import com.facebook.presto.sql.planner.assertions.MatchResult; @@ -58,6 +58,10 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveQueryRunner.HIVE_CATALOG; import static com.facebook.presto.hive.HiveQueryRunner.createQueryRunner; @@ -69,10 +73,6 @@ import static com.facebook.presto.spi.predicate.Domain.notNull; import static com.facebook.presto.spi.predicate.Domain.singleValue; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.assertions.MatchResult.NO_MATCH; import static com.facebook.presto.sql.planner.assertions.MatchResult.match; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java index be2982c4e00a8..5b88ebeacee0d 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.metastore.SortingColumn; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slices; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java index aca0acf71b3b3..20f924910ae2b 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java @@ -15,6 +15,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.GroupByHashPageIndexerFactory; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; import com.facebook.presto.hive.metastore.HivePageSinkMetadata; @@ -30,9 +32,7 @@ import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -59,6 +59,11 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.testing.Assertions.assertGreaterThan; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveCompressionCodec.NONE; @@ -82,11 +87,6 @@ import static com.facebook.presto.hive.TestHiveUtil.createTestingFileHiveMetastore; import static com.facebook.presto.spi.SplitContext.NON_CACHEABLE; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.NO_PREFERENCE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java index 1add8ea0cd983..1d68ca4e53a34 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.PrestoTableType; import com.facebook.presto.hive.metastore.Storage; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TestingTypeManager; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -33,6 +33,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveColumnHandle.MAX_PARTITION_KEY_COLUMN_INDEX; @@ -41,9 +44,6 @@ import static com.facebook.presto.hive.HiveType.HIVE_INT; import static com.facebook.presto.hive.HiveType.HIVE_STRING; import static com.facebook.presto.hive.metastore.StorageFormat.fromHiveStorageFormat; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java index 768a7bcc6c93d..c849f0e415094 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java @@ -32,20 +32,20 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DATE; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.REAL; +import static com.facebook.presto.common.type.StandardTypes.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.TINYINT; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.hive.HiveQueryRunner.HIVE_CATALOG; import static com.facebook.presto.hive.HiveSessionProperties.PUSHDOWN_FILTER_ENABLED; import static com.facebook.presto.hive.HiveStorageFormat.RCBINARY; import static com.facebook.presto.hive.HiveStorageFormat.RCTEXT; import static com.facebook.presto.hive.HiveStorageFormat.TEXTFILE; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.REAL; -import static com.facebook.presto.spi.type.StandardTypes.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.TINYINT; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import static io.airlift.tpch.TpchTable.getTables; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveRoles.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveRoles.java index 94f3bc52220c8..2a7141d77a74b 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveRoles.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveRoles.java @@ -14,9 +14,9 @@ package com.facebook.presto.hive; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.tests.AbstractTestQueryFramework; import com.google.common.collect.ImmutableList; @@ -30,7 +30,7 @@ import java.util.Set; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.tests.QueryAssertions.assertContains; import static com.facebook.presto.tests.QueryAssertions.assertEqualsIgnoreOrder; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveSplit.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveSplit.java index 0766724385080..a3154d8e82f8c 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveSplit.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveSplit.java @@ -18,6 +18,11 @@ import com.facebook.airlift.json.JsonModule; import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.block.BlockJsonSerde; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveColumnHandle.ColumnType; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Storage; @@ -25,11 +30,6 @@ import com.facebook.presto.metadata.HandleJsonModule; import com.facebook.presto.metadata.HandleResolver; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeDeserializer; import com.facebook.presto.type.TypeRegistry; @@ -47,10 +47,10 @@ import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.hive.HiveType.HIVE_LONG; import static com.facebook.presto.hive.HiveType.HIVE_STRING; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.NO_PREFERENCE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.inject.multibindings.Multibinder.newSetBinder; import static org.testng.Assert.assertEquals; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveTypeTranslator.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveTypeTranslator.java index 3e6c1c2173e8c..90af6200ae49b 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveTypeTranslator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveTypeTranslator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -23,9 +23,9 @@ import java.util.Map; import static com.facebook.airlift.testing.Assertions.assertContains; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; import static org.testng.Assert.assertEquals; import static org.testng.Assert.fail; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java index b620e8c2c4cc1..2367a0c9416bf 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.type.TypeRegistry; import com.facebook.presto.util.DateTimeUtils; import com.google.common.collect.ImmutableList; @@ -29,6 +29,14 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.DECIMAL; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveTestUtils.longDecimal; import static com.facebook.presto.hive.HiveTestUtils.shortDecimal; @@ -39,14 +47,6 @@ import static com.facebook.presto.hive.HiveType.HIVE_TIMESTAMP; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.predicate.ValueSet.ofRanges; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.DECIMAL; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static org.testng.Assert.assertEquals; public class TestIonSqlQueryBuilder diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestJsonHiveHandles.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestJsonHiveHandles.java index 7dd3b05ea49b1..3846695d79ef0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestJsonHiveHandles.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestJsonHiveHandles.java @@ -14,8 +14,8 @@ package com.facebook.presto.hive; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.StandardTypes; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; @@ -26,9 +26,9 @@ import java.util.Optional; import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java index a173fbc2a9ff0..40ced75a05556 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; import com.facebook.airlift.stats.Distribution; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.hive.orc.OrcBatchPageSourceFactory; @@ -36,13 +38,11 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.facebook.presto.testing.TestingConnectorSession; @@ -99,6 +99,7 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.airlift.testing.Assertions.assertBetweenInclusive; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; @@ -108,7 +109,6 @@ import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestS3SelectRecordCursor.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestS3SelectRecordCursor.java index 2f76e68ccdccd..ecfde81ad898a 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestS3SelectRecordCursor.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestS3SelectRecordCursor.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.TypeManager; import com.google.common.collect.ImmutableList; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; @@ -29,12 +29,12 @@ import java.util.Properties; import java.util.stream.Stream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveType.HIVE_INT; import static com.facebook.presto.hive.HiveType.HIVE_STRING; import static com.facebook.presto.hive.S3SelectRecordCursor.updateSplitSchema; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static java.util.stream.Collectors.joining; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java index dcdd5621399b5..6c0a1a22f6530 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestSubfieldExtractor.java @@ -15,20 +15,20 @@ import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.TestingSession; +import com.facebook.presto.spi.TestingSession; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.ExpressionOptimizer; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.relational.FunctionResolution; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -41,15 +41,15 @@ import java.util.function.Function; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java index a9f3b28e01ab3..dcab8ded839de 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.authentication.NoHdfsAuthentication; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Database; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.ListeningExecutorService; import org.apache.hadoop.fs.Path; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java index c9c12f80230fb..0c31b4c413509 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.benchmark; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.GenericHiveRecordCursorProvider; import com.facebook.presto.hive.HdfsEnvironment; @@ -57,7 +58,6 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.slice.OutputStreamSliceOutput; import io.airlift.units.DataSize; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java index 6a49274dbdfb2..d1e849c4e50a4 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.hive.benchmark; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hadoop.HadoopNative; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveClientConfig; @@ -24,9 +27,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; @@ -63,14 +63,14 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.hive.HiveTestUtils.METASTORE_CLIENT_CONFIG; import static com.facebook.presto.hive.HiveTestUtils.createTestHdfsEnvironment; import static com.facebook.presto.hive.HiveTestUtils.mapType; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import static io.airlift.tpch.TpchTable.LINE_ITEM; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/AbstractTestParquetReader.java b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/AbstractTestParquetReader.java index 41611a3208998..0578c9b1b83e0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/AbstractTestParquetReader.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/AbstractTestParquetReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.parquet; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.google.common.collect.AbstractIterator; import com.google.common.collect.AbstractSequentialIterator; import com.google.common.collect.ContiguousSet; @@ -60,21 +60,21 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_PRECISION; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.RowType.field; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.hive.parquet.ParquetTester.HIVE_STORAGE_TIME_ZONE; import static com.facebook.presto.hive.parquet.ParquetTester.insertNullEvery; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_PRECISION; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.RowType.field; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.tests.StructuralTestUtil.mapType; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java index a6fb3c6d65b43..fad20bedee99b 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java @@ -13,6 +13,20 @@ */ package com.facebook.presto.hive.parquet; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveClientConfig; import com.facebook.presto.hive.HiveSessionProperties; @@ -32,20 +46,6 @@ import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordPageSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.base.Function; import com.google.common.base.Joiner; @@ -91,6 +91,20 @@ import java.util.Properties; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.hive.AbstractTestHiveFileFormats.getFieldFromCursor; import static com.facebook.presto.hive.HiveSessionProperties.getParquetMaxReadBlockSize; import static com.facebook.presto.hive.HiveTestUtils.METASTORE_CLIENT_CONFIG; @@ -99,20 +113,6 @@ import static com.facebook.presto.hive.metastore.MetastoreUtil.isArrayType; import static com.facebook.presto.hive.metastore.MetastoreUtil.isMapType; import static com.facebook.presto.hive.metastore.MetastoreUtil.isRowType; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.google.common.base.Functions.constant; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java index 75ca5678529dd..9aaaff5d3fda1 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.hive.parquet.predicate; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveType; import com.facebook.presto.parquet.RichColumnDescriptor; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -35,14 +35,14 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetTupleDomain; import static com.facebook.presto.parquet.ParquetTypeUtils.getDescriptors; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32; import static org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT64; import static org.apache.parquet.schema.Type.Repetition.OPTIONAL; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/statistics/TestMetastoreHiveStatisticsProvider.java b/presto-hive/src/test/java/com/facebook/presto/hive/statistics/TestMetastoreHiveStatisticsProvider.java index 9baea234c4023..9589ba5daae5c 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/statistics/TestMetastoreHiveStatisticsProvider.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/statistics/TestMetastoreHiveStatisticsProvider.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.statistics; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveClientConfig; import com.facebook.presto.hive.HiveColumnHandle; @@ -32,8 +34,6 @@ import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -46,6 +46,15 @@ import java.util.OptionalDouble; import java.util.OptionalLong; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.PARTITION_KEY; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CORRUPTED_COLUMN_STATISTICS; @@ -72,15 +81,6 @@ import static com.facebook.presto.hive.statistics.MetastoreHiveStatisticsProvider.createDataColumnStatistics; import static com.facebook.presto.hive.statistics.MetastoreHiveStatisticsProvider.getPartitionsSample; import static com.facebook.presto.hive.statistics.MetastoreHiveStatisticsProvider.validatePartitionStatistics; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.Double.NaN; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java index 70510274f23dc..8b1b13a35d061 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -26,7 +26,7 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static java.util.Comparator.naturalOrder; import static java.util.Comparator.nullsFirst; import static java.util.stream.Collectors.toList; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestSerDeUtils.java b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestSerDeUtils.java index 4e89b8ff947a7..8fa854ebc83ed 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestSerDeUtils.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestSerDeUtils.java @@ -14,12 +14,12 @@ package com.facebook.presto.hive.util; import com.facebook.presto.block.BlockEncodingManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.BlockSerdeUtil; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockSerdeUtil; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -41,19 +41,19 @@ import java.util.Map; import java.util.TreeMap; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.hive.util.SerDeUtils.getBlockObject; import static com.facebook.presto.hive.util.SerDeUtils.serializeObject; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.rowBlockOf; @@ -179,8 +179,8 @@ public void testListBlock() ListHolder listHolder = new ListHolder(); listHolder.array = array; - com.facebook.presto.spi.type.Type rowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); - com.facebook.presto.spi.type.Type arrayOfRowType = RowType.anonymous(ImmutableList.of(new ArrayType(rowType))); + com.facebook.presto.common.type.Type rowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); + com.facebook.presto.common.type.Type arrayOfRowType = RowType.anonymous(ImmutableList.of(new ArrayType(rowType))); Block actual = toBinaryBlock(arrayOfRowType, listHolder, getInspector(ListHolder.class)); BlockBuilder blockBuilder = rowType.createBlockBuilder(null, 1024); rowType.writeObject(blockBuilder, rowBlockOf(ImmutableList.of(INTEGER, BIGINT), 8, 9L)); @@ -223,7 +223,7 @@ public void testStructBlock() // test simple structs InnerStruct innerStruct = new InnerStruct(13, 14L); - com.facebook.presto.spi.type.Type rowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); + com.facebook.presto.common.type.Type rowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); Block actual = toBinaryBlock(rowType, innerStruct, getInspector(InnerStruct.class)); Block expected = rowBlockOf(ImmutableList.of(INTEGER, BIGINT), 13, 14L); @@ -249,11 +249,11 @@ public void testStructBlock() outerStruct.map.put("fifteen", new InnerStruct(-5, -10L)); outerStruct.innerStruct = new InnerStruct(18, 19L); - com.facebook.presto.spi.type.Type innerRowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); - com.facebook.presto.spi.type.Type arrayOfInnerRowType = new ArrayType(innerRowType); - com.facebook.presto.spi.type.Type mapOfInnerRowType = mapType(createUnboundedVarcharType(), innerRowType); - List outerRowParameterTypes = ImmutableList.of(TINYINT, SMALLINT, INTEGER, BIGINT, REAL, DOUBLE, createUnboundedVarcharType(), createUnboundedVarcharType(), arrayOfInnerRowType, mapOfInnerRowType, innerRowType); - com.facebook.presto.spi.type.Type outerRowType = RowType.anonymous(outerRowParameterTypes); + com.facebook.presto.common.type.Type innerRowType = RowType.anonymous(ImmutableList.of(INTEGER, BIGINT)); + com.facebook.presto.common.type.Type arrayOfInnerRowType = new ArrayType(innerRowType); + com.facebook.presto.common.type.Type mapOfInnerRowType = mapType(createUnboundedVarcharType(), innerRowType); + List outerRowParameterTypes = ImmutableList.of(TINYINT, SMALLINT, INTEGER, BIGINT, REAL, DOUBLE, createUnboundedVarcharType(), createUnboundedVarcharType(), arrayOfInnerRowType, mapOfInnerRowType, innerRowType); + com.facebook.presto.common.type.Type outerRowType = RowType.anonymous(outerRowParameterTypes); actual = toBinaryBlock(outerRowType, outerStruct, getInspector(OuterStruct.class)); @@ -310,7 +310,7 @@ private Slice blockToSlice(Block block) return sliceOutput.slice(); } - private static Block toBinaryBlock(com.facebook.presto.spi.type.Type type, Object object, ObjectInspector inspector) + private static Block toBinaryBlock(com.facebook.presto.common.type.Type type, Object object, ObjectInspector inspector) { if (inspector.getCategory() == Category.PRIMITIVE) { return getPrimitiveBlock(type, object, inspector); @@ -318,7 +318,7 @@ private static Block toBinaryBlock(com.facebook.presto.spi.type.Type type, Objec return getBlockObject(type, object, inspector); } - private static Block getPrimitiveBlock(com.facebook.presto.spi.type.Type type, Object object, ObjectInspector inspector) + private static Block getPrimitiveBlock(com.facebook.presto.common.type.Type type, Object object, ObjectInspector inspector) { BlockBuilder builder = VARBINARY.createBlockBuilder(null, 1); serializeObject(type, builder, object, inspector); diff --git a/presto-i18n-functions/src/main/java/com/facebook/presto/i18n/functions/I18nMyanmarFunctions.java b/presto-i18n-functions/src/main/java/com/facebook/presto/i18n/functions/I18nMyanmarFunctions.java index dd88866a446df..1ac833a20a4fb 100644 --- a/presto-i18n-functions/src/main/java/com/facebook/presto/i18n/functions/I18nMyanmarFunctions.java +++ b/presto-i18n-functions/src/main/java/com/facebook/presto/i18n/functions/I18nMyanmarFunctions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.i18n.functions; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.myanmartools.TransliterateZ2U; import com.google.myanmartools.ZawgyiDetector; import io.airlift.slice.Slice; diff --git a/presto-i18n-functions/src/test/java/com/facebook/presto/i18n/functions/TestMyanmarFunctions.java b/presto-i18n-functions/src/test/java/com/facebook/presto/i18n/functions/TestMyanmarFunctions.java index 0aef819c5c32c..1f5bc00908408 100644 --- a/presto-i18n-functions/src/test/java/com/facebook/presto/i18n/functions/TestMyanmarFunctions.java +++ b/presto-i18n-functions/src/test/java/com/facebook/presto/i18n/functions/TestMyanmarFunctions.java @@ -17,8 +17,8 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; public class TestMyanmarFunctions extends AbstractTestFunctions diff --git a/presto-jdbc/pom.xml b/presto-jdbc/pom.xml index 5584b43199f79..ba2782f9d798a 100644 --- a/presto-jdbc/pom.xml +++ b/presto-jdbc/pom.xml @@ -27,6 +27,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.squareup.okhttp3 okhttp diff --git a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ColumnInfo.java b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ColumnInfo.java index 93e53d7f7248a..e2fe1da33d350 100644 --- a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ColumnInfo.java +++ b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/ColumnInfo.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.jdbc; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.google.common.collect.ImmutableList; import java.sql.Types; diff --git a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java index 4fcb1d375b003..801831257ed87 100644 --- a/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java +++ b/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoResultSet.java @@ -60,8 +60,8 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.jdbc.ColumnInfo.setTypeInfo; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Verify.verify; import static com.google.common.collect.Iterables.getOnlyElement; import static com.google.common.collect.Iterators.concat; diff --git a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java index 146c2336b85cd..352835ceee0ee 100644 --- a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java +++ b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java @@ -43,10 +43,10 @@ import java.util.Map; import java.util.Set; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.jdbc.TestPrestoDriver.closeQuietly; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.ALL_NODES; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.inject.multibindings.Multibinder.newSetBinder; import static java.lang.String.format; import static org.assertj.core.api.Assertions.assertThat; diff --git a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriver.java b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriver.java index 39605d81b466a..22a9c1ea72385 100644 --- a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriver.java +++ b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestPrestoDriver.java @@ -14,26 +14,26 @@ package com.facebook.presto.jdbc; import com.facebook.airlift.log.Logging; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimeWithTimeZoneType; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TimestampWithTimeZoneType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.execution.QueryState; import com.facebook.presto.plugin.blackhole.BlackHolePlugin; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimeWithTimeZoneType; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TimestampWithTimeZoneType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.facebook.presto.tpch.TpchMetadata; import com.facebook.presto.tpch.TpchPlugin; import com.facebook.presto.type.ColorType; @@ -78,12 +78,12 @@ import static com.facebook.airlift.testing.Assertions.assertContains; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.airlift.testing.Assertions.assertLessThan; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.execution.QueryState.FAILED; import static com.facebook.presto.execution.QueryState.RUNNING; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static io.airlift.units.Duration.nanosSince; import static java.lang.Float.POSITIVE_INFINITY; import static java.lang.String.format; diff --git a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestProgressMonitor.java b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestProgressMonitor.java index e9b774436ac3f..962fc00d94e04 100644 --- a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestProgressMonitor.java +++ b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestProgressMonitor.java @@ -17,7 +17,7 @@ import com.facebook.presto.client.Column; import com.facebook.presto.client.QueryResults; import com.facebook.presto.client.StatementStats; -import com.facebook.presto.spi.type.BigintType; +import com.facebook.presto.common.type.BigintType; import com.google.common.collect.ImmutableList; import okhttp3.mockwebserver.MockResponse; import okhttp3.mockwebserver.MockWebServer; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxColumnHandle.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxColumnHandle.java index a06fb8b32c02f..0c6511a21a9cb 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxColumnHandle.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.jmx; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxMetadata.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxMetadata.java index edfac953f837b..d67b76c046a64 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxMetadata.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.jmx; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; @@ -53,11 +53,11 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Comparator.comparing; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxRecordSetProvider.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxRecordSetProvider.java index bdb7a04daf442..9c820636012a7 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxRecordSetProvider.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxRecordSetProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.jmx; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java index 1224b9a8bc2b2..bf058fa273e61 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java @@ -32,9 +32,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.JmxMetadata.NODE_COLUMN_NAME; import static com.facebook.presto.spi.predicate.TupleDomain.fromFixedValues; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/MetadataUtil.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/MetadataUtil.java index dc006e60327ae..e6abf26f79303 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/MetadataUtil.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/MetadataUtil.java @@ -16,16 +16,16 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Locale.ENGLISH; diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxColumnHandle.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxColumnHandle.java index fa6e4ea6d9109..33c7134bea338 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxColumnHandle.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxColumnHandle.java @@ -16,9 +16,9 @@ import com.facebook.airlift.testing.EquivalenceTester; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.MetadataUtil.COLUMN_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestJmxColumnHandle diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxMetadata.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxMetadata.java index e695595ec347a..9b98d1f41f2a2 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxMetadata.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxMetadata.java @@ -20,11 +20,11 @@ import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.JmxMetadata.HISTORY_SCHEMA_NAME; import static com.facebook.presto.connector.jmx.JmxMetadata.JMX_SCHEMA_NAME; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static java.lang.management.ManagementFactory.getPlatformMBeanServer; import static java.util.Locale.ENGLISH; diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java index 95f149492a2d5..9c0844f67238c 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.jmx; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.type.TimestampType; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplit; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TimestampType; import com.facebook.presto.testing.TestingNodeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -46,11 +46,11 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.JmxMetadata.HISTORY_SCHEMA_NAME; import static com.facebook.presto.connector.jmx.JmxMetadata.JMX_SCHEMA_NAME; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxTableHandle.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxTableHandle.java index 8024fbeb21645..df9bb4a6ccba9 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxTableHandle.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxTableHandle.java @@ -20,9 +20,9 @@ import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.MetadataUtil.TABLE_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestJmxTableHandle diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaColumnHandle.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaColumnHandle.java index 2cb00178b5f1f..4aee3f50186c8 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaColumnHandle.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.kafka; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorFactory.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorFactory.java index fdaf9d1b30090..e18f79aac50a8 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorFactory.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorFactory.java @@ -15,13 +15,13 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import com.google.inject.Scopes; import com.google.inject.TypeLiteral; diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java index b809bb9fd2c3a..4235177b76f9f 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java @@ -14,9 +14,9 @@ package com.facebook.presto.kafka; import com.facebook.airlift.configuration.AbstractConfigurationAwareModule; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.decoder.DecoderModule; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -27,7 +27,7 @@ import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; /** diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaInternalFieldDescription.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaInternalFieldDescription.java index fe3530b66fbb8..431323cdbdbc8 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaInternalFieldDescription.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaInternalFieldDescription.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.kafka; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.Type; import java.util.Map; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaRecordSet.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaRecordSet.java index c36da7d967255..cfb2114f2aa67 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaRecordSet.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaRecordSet.java @@ -14,6 +14,8 @@ package com.facebook.presto.kafka; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.apache.kafka.clients.consumer.ConsumerRecord; diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaTopicFieldDescription.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaTopicFieldDescription.java index 38c9861ea5f56..455a1194a3f50 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaTopicFieldDescription.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaTopicFieldDescription.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.kafka; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-kafka/src/test/java/com/facebook/presto/kafka/TestMinimalFunctionality.java b/presto-kafka/src/test/java/com/facebook/presto/kafka/TestMinimalFunctionality.java index bce51198cc024..e979c8dcc5f5b 100644 --- a/presto-kafka/src/test/java/com/facebook/presto/kafka/TestMinimalFunctionality.java +++ b/presto-kafka/src/test/java/com/facebook/presto/kafka/TestMinimalFunctionality.java @@ -14,13 +14,13 @@ package com.facebook.presto.kafka; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.kafka.util.EmbeddedKafka; import com.facebook.presto.kafka.util.TestUtils; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AllowAllAccessControl; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.type.BigintType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.tests.StandaloneQueryRunner; import com.google.common.collect.ImmutableMap; diff --git a/presto-kafka/src/test/java/com/facebook/presto/kafka/util/CodecSupplier.java b/presto-kafka/src/test/java/com/facebook/presto/kafka/util/CodecSupplier.java index 568e38d5a2b15..1b743b507d580 100644 --- a/presto-kafka/src/test/java/com/facebook/presto/kafka/util/CodecSupplier.java +++ b/presto-kafka/src/test/java/com/facebook/presto/kafka/util/CodecSupplier.java @@ -16,15 +16,15 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.function.Supplier; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class CodecSupplier implements Supplier> diff --git a/presto-kafka/src/test/java/com/facebook/presto/kafka/util/KafkaLoader.java b/presto-kafka/src/test/java/com/facebook/presto/kafka/util/KafkaLoader.java index 96701651801d4..049453363003d 100644 --- a/presto-kafka/src/test/java/com/facebook/presto/kafka/util/KafkaLoader.java +++ b/presto-kafka/src/test/java/com/facebook/presto/kafka/util/KafkaLoader.java @@ -17,11 +17,11 @@ import com.facebook.presto.client.Column; import com.facebook.presto.client.QueryData; import com.facebook.presto.client.QueryStatusInfo; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.Varchars; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.PrestoWarning; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.Varchars; import com.facebook.presto.tests.AbstractTestingPrestoClient; import com.facebook.presto.tests.ResultsSession; import com.google.common.collect.ImmutableMap; @@ -36,16 +36,16 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.util.DateTimeUtils.parseTimeLiteral; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithTimeZone; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithoutTimeZone; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java index bced945efefce..8503d051c9f73 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java @@ -14,6 +14,7 @@ package com.facebook.presto.kudu; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.kudu.properties.ColumnDesign; import com.facebook.presto.kudu.properties.HashPartitionDefinition; import com.facebook.presto.kudu.properties.KuduTableProperties; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.DecimalType; import com.google.common.collect.ImmutableList; import org.apache.kudu.ColumnSchema; import org.apache.kudu.ColumnTypeAttributes; @@ -533,7 +533,7 @@ else if (valueSet instanceof SortedRangeSet) { private KuduPredicate createInListPredicate(ColumnSchema columnSchema, DiscreteValues discreteValues) { - com.facebook.presto.spi.type.Type type = TypeHelper.fromKuduColumn(columnSchema); + com.facebook.presto.common.type.Type type = TypeHelper.fromKuduColumn(columnSchema); List javaValues = discreteValues.getValues().stream().map(value -> TypeHelper.getJavaValue(type, value)).collect(toImmutableList()); return KuduPredicate.newInListPredicate(columnSchema, javaValues); } @@ -547,7 +547,7 @@ private KuduPredicate createComparisonPredicate(ColumnSchema columnSchema, KuduPredicate.ComparisonOp op, Object value) { - com.facebook.presto.spi.type.Type type = TypeHelper.fromKuduColumn(columnSchema); + com.facebook.presto.common.type.Type type = TypeHelper.fromKuduColumn(columnSchema); Object javaValue = TypeHelper.getJavaValue(type, value); if (javaValue instanceof Long) { return KuduPredicate.newComparisonPredicate(columnSchema, op, (Long) javaValue); diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduColumnHandle.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduColumnHandle.java index 9fe9e432668fe..6bae873df75d9 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduColumnHandle.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduColumnHandle.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduInsertTableHandle.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduInsertTableHandle.java index d55051466192d..0aab2b4239274 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduInsertTableHandle.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduInsertTableHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduMetadata.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduMetadata.java index 5aa63dc0b5062..a90817169251f 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduMetadata.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduMetadata.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.kudu.properties.KuduTableProperties; import com.facebook.presto.kudu.properties.PartitionDesign; import com.facebook.presto.spi.ColumnHandle; @@ -33,9 +36,6 @@ import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduModule.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduModule.java index 015b0b743d903..bb91d80faa93f 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduModule.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduModule.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.kudu.procedures.RangePartitionProcedures; import com.facebook.presto.kudu.properties.KuduTableProperties; import com.facebook.presto.kudu.schema.NoSchemaEmulation; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.procedure.Procedure; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.AbstractModule; import com.google.inject.Provides; import com.google.inject.Scopes; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduOutputTableHandle.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduOutputTableHandle.java index 77f03e633a03b..291dc800ca5a5 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduOutputTableHandle.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduOutputTableHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java index 852afc051740a..114674942256f 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.apache.kudu.client.KuduException; @@ -40,17 +40,17 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static java.lang.Float.intBitsToFloat; import static java.util.Objects.requireNonNull; import static java.util.concurrent.CompletableFuture.completedFuture; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursor.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursor.java index 8f73510fb95c8..645fbf14307b6 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursor.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursor.java @@ -14,8 +14,8 @@ package com.facebook.presto.kudu; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.apache.kudu.client.KuduException; import org.apache.kudu.client.KuduScanner; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursorWithVirtualRowId.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursorWithVirtualRowId.java index dda150a3fd802..ca62c8f2a9cea 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursorWithVirtualRowId.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordCursorWithVirtualRowId.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.kudu; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.kudu.Schema; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordSet.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordSet.java index 348fd6e716c8b..061b1a10d1494 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordSet.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduRecordSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import org.apache.kudu.client.KuduScanner; import org.apache.kudu.client.KuduTable; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableMapping.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableMapping.java index d81cc237a7623..d8ccfdd6ff0cc 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableMapping.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableMapping.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.kudu; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.List; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java index 798a1762810b6..a2efc5d1fd2a5 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.Block; import io.airlift.slice.Slice; import org.apache.kudu.Schema; import org.apache.kudu.client.Delete; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/TypeHelper.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/TypeHelper.java index 967b111451069..8064da45709de 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/TypeHelper.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/TypeHelper.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.kudu; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.kudu.ColumnSchema; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/procedures/RangePartitionProcedures.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/procedures/RangePartitionProcedures.java index 099dc1a53bf5c..c9638aa803ea3 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/procedures/RangePartitionProcedures.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/procedures/RangePartitionProcedures.java @@ -25,8 +25,8 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static java.util.Objects.requireNonNull; public class RangePartitionProcedures diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/properties/KuduTableProperties.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/properties/KuduTableProperties.java index 77b2224526b8f..b48e5a34c475a 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/properties/KuduTableProperties.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/properties/KuduTableProperties.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.kudu.properties; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import org.apache.kudu.ColumnSchema; @@ -48,11 +48,11 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-kudu/src/test/java/com/facebook/presto/kudu/KuduQueryRunnerFactory.java b/presto-kudu/src/test/java/com/facebook/presto/kudu/KuduQueryRunnerFactory.java index 08672f5d076ea..368a82696be30 100644 --- a/presto-kudu/src/test/java/com/facebook/presto/kudu/KuduQueryRunnerFactory.java +++ b/presto-kudu/src/test/java/com/facebook/presto/kudu/KuduQueryRunnerFactory.java @@ -24,7 +24,7 @@ import java.util.Map; import static com.facebook.airlift.testing.Closeables.closeAllSuppress; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.tests.QueryAssertions.copyTpchTables; import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; diff --git a/presto-kudu/src/test/java/com/facebook/presto/kudu/TestKuduIntegrationSmoke.java b/presto-kudu/src/test/java/com/facebook/presto/kudu/TestKuduIntegrationSmoke.java index 9cb22793b57be..175be603bc4e6 100644 --- a/presto-kudu/src/test/java/com/facebook/presto/kudu/TestKuduIntegrationSmoke.java +++ b/presto-kudu/src/test/java/com/facebook/presto/kudu/TestKuduIntegrationSmoke.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.kudu; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.testing.QueryRunner; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileColumnHandle.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileColumnHandle.java index 961d51b914e63..d3f40bc0b420d 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileColumnHandle.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileMetadata.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileMetadata.java index a8a4d59fcfaa9..23f1a0ba6182c 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileMetadata.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileMetadata.java @@ -36,9 +36,9 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.localfile.LocalFileColumnHandle.SERVER_ADDRESS_COLUMN_NAME; import static com.facebook.presto.localfile.LocalFileColumnHandle.SERVER_ADDRESS_ORDINAL_POSITION; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; import static java.util.Objects.requireNonNull; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java index 73e04ed326101..fab0dd4e85f05 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.Strings; @@ -46,14 +46,14 @@ import java.util.Set; import java.util.zip.GZIPInputStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.localfile.LocalFileColumnHandle.SERVER_ADDRESS_ORDINAL_POSITION; import static com.facebook.presto.localfile.LocalFileErrorCode.LOCAL_FILE_READ_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java index e050da4ebf014..18db23ec33dec 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTables.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTables.java index ccaf9343a6db0..b44704bc1309f 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTables.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTables.java @@ -31,14 +31,14 @@ import java.util.Optional; import java.util.OptionalInt; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.localfile.LocalFileMetadata.PRESTO_LOGS_SCHEMA; import static com.facebook.presto.localfile.LocalFileMetadata.SERVER_ADDRESS_COLUMN; import static com.facebook.presto.localfile.LocalFileTables.HttpRequestLogTable.getSchemaTableName; import static com.facebook.presto.localfile.LocalFileTables.HttpRequestLogTable.getServerAddressColumn; import static com.facebook.presto.localfile.LocalFileTables.HttpRequestLogTable.getTimestampColumn; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Throwables.throwIfInstanceOf; import static java.util.concurrent.TimeUnit.SECONDS; diff --git a/presto-local-file/src/test/java/com/facebook/presto/localfile/MetadataUtil.java b/presto-local-file/src/test/java/com/facebook/presto/localfile/MetadataUtil.java index fe8397b6c3733..437f0865b4ee3 100644 --- a/presto-local-file/src/test/java/com/facebook/presto/localfile/MetadataUtil.java +++ b/presto-local-file/src/test/java/com/facebook/presto/localfile/MetadataUtil.java @@ -16,20 +16,20 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static java.util.Locale.ENGLISH; final class MetadataUtil diff --git a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileColumnHandle.java b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileColumnHandle.java index 7dda53acd2000..787a310bacd3e 100644 --- a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileColumnHandle.java +++ b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileColumnHandle.java @@ -18,13 +18,13 @@ import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.localfile.MetadataUtil.COLUMN_CODEC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestLocalFileColumnHandle diff --git a/presto-main/pom.xml b/presto-main/pom.xml index 1ffdf583e25bd..123f92507f6e4 100644 --- a/presto-main/pom.xml +++ b/presto-main/pom.xml @@ -397,6 +397,13 @@ test + + com.facebook.presto + presto-common + test-jar + test + + org.openjdk.jmh jmh-core diff --git a/presto-main/src/main/java/com/facebook/presto/FullConnectorSession.java b/presto-main/src/main/java/com/facebook/presto/FullConnectorSession.java index b90057d133f9a..928ccf8724962 100644 --- a/presto-main/src/main/java/com/facebook/presto/FullConnectorSession.java +++ b/presto-main/src/main/java/com/facebook/presto/FullConnectorSession.java @@ -13,11 +13,11 @@ */ package com.facebook.presto; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.security.ConnectorIdentity; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java index bcc6eb27f0d5c..772892b9345e0 100644 --- a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java +++ b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByHash; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java index b6d14750a7b55..d86d839a6dd48 100644 --- a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; import com.facebook.presto.spi.PageIndexerFactory; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java b/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java index 570b5f0c6d13e..de7be5665ee75 100644 --- a/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java +++ b/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/Session.java b/presto-main/src/main/java/com/facebook/presto/Session.java index 9ed0872b82a78..424a6be12c6af 100644 --- a/presto-main/src/main/java/com/facebook/presto/Session.java +++ b/presto-main/src/main/java/com/facebook/presto/Session.java @@ -13,18 +13,18 @@ */ package com.facebook.presto; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.security.SelectedRole; import com.facebook.presto.spi.session.ResourceEstimates; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.tree.Execute; import com.facebook.presto.transaction.TransactionId; import com.facebook.presto.transaction.TransactionManager; diff --git a/presto-main/src/main/java/com/facebook/presto/SessionRepresentation.java b/presto-main/src/main/java/com/facebook/presto/SessionRepresentation.java index b306400811799..37ac81ee67155 100644 --- a/presto-main/src/main/java/com/facebook/presto/SessionRepresentation.java +++ b/presto-main/src/main/java/com/facebook/presto/SessionRepresentation.java @@ -13,6 +13,7 @@ */ package com.facebook.presto; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.QueryId; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.security.SelectedRole; import com.facebook.presto.spi.security.TokenAuthenticator; import com.facebook.presto.spi.session.ResourceEstimates; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.transaction.TransactionId; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java index e7d7669d1ac8a..36acb561c5f56 100644 --- a/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java +++ b/presto-main/src/main/java/com/facebook/presto/SystemSessionProperties.java @@ -37,15 +37,15 @@ import java.util.OptionalInt; import java.util.stream.Stream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SESSION_PROPERTY; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.doubleProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.BROADCAST; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.PARTITIONED; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinReorderingStrategy.ELIMINATE_CROSS_JOINS; diff --git a/presto-main/src/main/java/com/facebook/presto/block/BlockEncodingManager.java b/presto-main/src/main/java/com/facebook/presto/block/BlockEncodingManager.java index 2870d2518074a..531c2e95c08d2 100644 --- a/presto-main/src/main/java/com/facebook/presto/block/BlockEncodingManager.java +++ b/presto-main/src/main/java/com/facebook/presto/block/BlockEncodingManager.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.ArrayBlockEncoding; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.ByteArrayBlockEncoding; -import com.facebook.presto.spi.block.DictionaryBlockEncoding; -import com.facebook.presto.spi.block.Int128ArrayBlockEncoding; -import com.facebook.presto.spi.block.IntArrayBlockEncoding; -import com.facebook.presto.spi.block.LazyBlockEncoding; -import com.facebook.presto.spi.block.LongArrayBlockEncoding; -import com.facebook.presto.spi.block.MapBlockEncoding; -import com.facebook.presto.spi.block.RowBlockEncoding; -import com.facebook.presto.spi.block.RunLengthBlockEncoding; -import com.facebook.presto.spi.block.ShortArrayBlockEncoding; -import com.facebook.presto.spi.block.SingleMapBlockEncoding; -import com.facebook.presto.spi.block.SingleRowBlockEncoding; -import com.facebook.presto.spi.block.VariableWidthBlockEncoding; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.block.ArrayBlockEncoding; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.ByteArrayBlockEncoding; +import com.facebook.presto.common.block.DictionaryBlockEncoding; +import com.facebook.presto.common.block.Int128ArrayBlockEncoding; +import com.facebook.presto.common.block.IntArrayBlockEncoding; +import com.facebook.presto.common.block.LazyBlockEncoding; +import com.facebook.presto.common.block.LongArrayBlockEncoding; +import com.facebook.presto.common.block.MapBlockEncoding; +import com.facebook.presto.common.block.RowBlockEncoding; +import com.facebook.presto.common.block.RunLengthBlockEncoding; +import com.facebook.presto.common.block.ShortArrayBlockEncoding; +import com.facebook.presto.common.block.SingleMapBlockEncoding; +import com.facebook.presto.common.block.SingleRowBlockEncoding; +import com.facebook.presto.common.block.VariableWidthBlockEncoding; +import com.facebook.presto.common.type.TypeManager; import com.google.common.collect.ImmutableSet; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-main/src/main/java/com/facebook/presto/block/BlockJsonSerde.java b/presto-main/src/main/java/com/facebook/presto/block/BlockJsonSerde.java index 31a3ab149284b..1f86629fad6da 100644 --- a/presto-main/src/main/java/com/facebook/presto/block/BlockJsonSerde.java +++ b/presto-main/src/main/java/com/facebook/presto/block/BlockJsonSerde.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.fasterxml.jackson.core.Base64Variants; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -31,8 +31,8 @@ import java.io.IOException; -import static com.facebook.presto.spi.block.BlockSerdeUtil.readBlock; -import static com.facebook.presto.spi.block.BlockSerdeUtil.writeBlock; +import static com.facebook.presto.common.block.BlockSerdeUtil.readBlock; +import static com.facebook.presto.common.block.BlockSerdeUtil.writeBlock; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorContextInstance.java b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorContextInstance.java index e13f50d79921f..f996e330efe1e 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorContextInstance.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorContextInstance.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.connector; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java index 0499a6afa29ac..1c7b25503b776 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/ConnectorManager.java @@ -15,6 +15,8 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.node.NodeInfo; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.informationSchema.InformationSchemaConnector; import com.facebook.presto.connector.system.DelegatingSystemTablesProvider; import com.facebook.presto.connector.system.MetadataBasedSystemTablesProvider; @@ -34,7 +36,6 @@ import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorAccessControl; @@ -52,7 +53,6 @@ import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.split.PageSinkManager; import com.facebook.presto.split.PageSourceManager; import com.facebook.presto.split.RecordPageSourceProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java index d794e81d702fa..16314affe88ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java @@ -48,11 +48,11 @@ import java.util.function.Predicate; import java.util.stream.Stream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.SchemaMetadataBuilder.schemaMetadataBuilder; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.metadata.MetadataUtil.findColumnMetadata; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Predicates.compose; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java index 3791682363afc..e1e8691c267f9 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java @@ -15,6 +15,7 @@ import com.facebook.presto.FullConnectorSession; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.InternalTable; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SplitContext; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.security.AccessDeniedException; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java index ad3803181be39..85da5179ae8e9 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java @@ -32,9 +32,9 @@ import java.util.TreeMap; import java.util.function.Supplier; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.MoreObjects.firstNonNull; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java index 18b145d588f17..bcbe55a11151c 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java @@ -31,11 +31,11 @@ import java.util.Map; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.system.SystemConnectorSessionUtil.toSession; import static com.facebook.presto.metadata.MetadataListing.listCatalogs; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class CatalogSystemTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/KillQueryProcedure.java b/presto-main/src/main/java/com/facebook/presto/connector/system/KillQueryProcedure.java index c9262823030e9..d3eb3758223d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/KillQueryProcedure.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/KillQueryProcedure.java @@ -27,12 +27,12 @@ import java.lang.invoke.MethodHandle; import java.util.NoSuchElementException; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.ADMINISTRATIVELY_KILLED; import static com.facebook.presto.spi.StandardErrorCode.ADMINISTRATIVELY_PREEMPTED; import static com.facebook.presto.spi.StandardErrorCode.INVALID_PROCEDURE_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Strings.isNullOrEmpty; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java index 68327e6d2e334..29f15f6eb7f73 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java @@ -32,13 +32,13 @@ import java.util.Locale; import java.util.Set; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.NodeState.ACTIVE; import static com.facebook.presto.spi.NodeState.INACTIVE; import static com.facebook.presto.spi.NodeState.SHUTTING_DOWN; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class NodeSystemTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java index f105b0c020223..196f63415b066 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryManager; import com.facebook.presto.execution.QueryStats; @@ -24,12 +27,9 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.resourceGroups.ResourceGroupId; -import com.facebook.presto.spi.type.ArrayType; import io.airlift.units.Duration; import org.joda.time.DateTime; @@ -39,11 +39,11 @@ import java.util.NoSuchElementException; import java.util.Objects; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.ALL_COORDINATORS; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java index 378a629215be1..108c6a098afcc 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorPageSource; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.MappedPageSource; import com.facebook.presto.split.MappedRecordSet; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java index ff8cf89392c0c..1db02584af2cf 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java @@ -33,11 +33,11 @@ import javax.inject.Inject; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.ALL_NODES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class TaskSystemTable implements SystemTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java index 948643c166198..981f0b0a955ab 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; @@ -21,13 +26,8 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.transaction.TransactionInfo; import com.facebook.presto.transaction.TransactionManager; import com.google.common.collect.ImmutableList; @@ -37,13 +37,13 @@ import java.util.List; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class TransactionsSystemTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java index 4f8a51ed8c838..ef4344901f688 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java @@ -21,9 +21,9 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class AttributeJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java index 375e80d3d8a37..2c4f46473f6b4 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java @@ -27,10 +27,10 @@ import javax.inject.Inject; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.system.SystemConnectorSessionUtil.toSession; import static com.facebook.presto.metadata.MetadataListing.listCatalogs; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class CatalogJdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java index 8780d88abf7af..f5627587d627e 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java @@ -14,6 +14,11 @@ package com.facebook.presto.connector.system.jdbc; import com.facebook.presto.Session; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedTablePrefix; import com.facebook.presto.security.AccessControl; @@ -26,11 +31,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import javax.inject.Inject; @@ -40,28 +40,28 @@ import java.util.Map.Entry; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.connector.system.SystemConnectorSessionUtil.toSession; import static com.facebook.presto.connector.system.jdbc.FilterUtil.filter; import static com.facebook.presto.connector.system.jdbc.FilterUtil.stringFilter; import static com.facebook.presto.metadata.MetadataListing.listCatalogs; import static com.facebook.presto.metadata.MetadataListing.listTableColumns; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static java.util.Objects.requireNonNull; public class ColumnJdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java index e8d39a8567f43..dd08d7fbd63fb 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java @@ -21,9 +21,9 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class ProcedureColumnJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java index b071fe63c1253..6d5a265975840 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java @@ -21,9 +21,9 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class ProcedureJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java index 35e528c958212..37a0070dcec83 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java @@ -21,9 +21,9 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class PseudoColumnJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java index e5dc8db8da8c0..92d8dd1ed292a 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java @@ -29,12 +29,12 @@ import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.system.SystemConnectorSessionUtil.toSession; import static com.facebook.presto.connector.system.jdbc.FilterUtil.filter; import static com.facebook.presto.metadata.MetadataListing.listCatalogs; import static com.facebook.presto.metadata.MetadataListing.listSchemas; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class SchemaJdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java index 924887821a3e5..fbb64d25a8f02 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java @@ -21,8 +21,8 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class SuperTableJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java index bad801a7a5bf4..51c61740d94db 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java @@ -21,8 +21,8 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class SuperTypeJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java index e5c8aa825d932..0b8d4e59cd0ac 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java @@ -30,6 +30,7 @@ import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.system.SystemConnectorSessionUtil.toSession; import static com.facebook.presto.connector.system.jdbc.FilterUtil.filter; import static com.facebook.presto.connector.system.jdbc.FilterUtil.stringFilter; @@ -38,7 +39,6 @@ import static com.facebook.presto.metadata.MetadataListing.listTables; import static com.facebook.presto.metadata.MetadataListing.listViews; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class TableJdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java index a2643f9ea3691..041fca8d1f69f 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java @@ -21,8 +21,8 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class TableTypeJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java index 6999f3db412bb..99f3720e70906 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; @@ -21,9 +24,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import javax.inject.Inject; @@ -31,13 +31,13 @@ import java.sql.Types; import java.util.Collection; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.system.jdbc.ColumnJdbcTable.columnSize; import static com.facebook.presto.connector.system.jdbc.ColumnJdbcTable.jdbcDataType; import static com.facebook.presto.connector.system.jdbc.ColumnJdbcTable.numPrecRadix; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Objects.requireNonNull; public class TypesJdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java index a2986e488d29b..2577f6e9897f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java @@ -21,8 +21,8 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class UdtJdbcTable extends JdbcTable diff --git a/presto-main/src/main/java/com/facebook/presto/cost/AssignUniqueIdStatsRule.java b/presto-main/src/main/java/com/facebook/presto/cost/AssignUniqueIdStatsRule.java index 225dd2b5ef595..8f8f712862470 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/AssignUniqueIdStatsRule.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/AssignUniqueIdStatsRule.java @@ -22,7 +22,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class AssignUniqueIdStatsRule implements ComposableStatsCalculator.Rule diff --git a/presto-main/src/main/java/com/facebook/presto/cost/ConnectorFilterStatsCalculatorService.java b/presto-main/src/main/java/com/facebook/presto/cost/ConnectorFilterStatsCalculatorService.java index c801abbb4eb4a..9983320aa7cf4 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/ConnectorFilterStatsCalculatorService.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/ConnectorFilterStatsCalculatorService.java @@ -14,6 +14,7 @@ package com.facebook.presto.cost; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableBiMap; import java.util.Map; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java b/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java index f37fe603be8c9..f91f8ac79606e 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/FilterStatsCalculator.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; import com.facebook.presto.sql.analyzer.Scope; import com.facebook.presto.sql.planner.ExpressionInterpreter; @@ -64,6 +64,7 @@ import java.util.Optional; import java.util.OptionalDouble; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.cost.ComparisonStatsCalculator.estimateExpressionToExpressionComparison; import static com.facebook.presto.cost.ComparisonStatsCalculator.estimateExpressionToLiteralComparison; import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.addStatsAndSumDistinctValues; @@ -73,7 +74,6 @@ import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.ExpressionUtils.and; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimate.java b/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimate.java index 91df9ae9582e5..e6fd134025166 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimate.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/PlanNodeStatsEstimate.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.cost; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VariableWidthType; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VariableWidthType; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/RowNumberStatsRule.java b/presto-main/src/main/java/com/facebook/presto/cost/RowNumberStatsRule.java index 0cccf2a31e36b..45ab7d0b52144 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/RowNumberStatsRule.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/RowNumberStatsRule.java @@ -23,7 +23,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.lang.Double.isNaN; import static java.lang.Math.min; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java b/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java index 8b9b232887b5f..1f5a340203939 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/ScalarStatsCalculator.java @@ -15,6 +15,8 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; @@ -27,8 +29,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; import com.facebook.presto.sql.analyzer.Scope; import com.facebook.presto.sql.planner.ExpressionInterpreter; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/StatsNormalizer.java b/presto-main/src/main/java/com/facebook/presto/cost/StatsNormalizer.java index 9c40bbe2c12f4..62d6593f75615 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/StatsNormalizer.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/StatsNormalizer.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.cost; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableSet; import java.util.Collection; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/StatsUtil.java b/presto-main/src/main/java/com/facebook/presto/cost/StatsUtil.java index 2cedee3f4bc36..b608db1ce173b 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/StatsUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/StatsUtil.java @@ -14,22 +14,22 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.InterpretedFunctionInvoker; import java.util.OptionalDouble; diff --git a/presto-main/src/main/java/com/facebook/presto/cost/ValuesStatsRule.java b/presto-main/src/main/java/com/facebook/presto/cost/ValuesStatsRule.java index c5eb9031ade45..43ac6886d9a39 100644 --- a/presto-main/src/main/java/com/facebook/presto/cost/ValuesStatsRule.java +++ b/presto-main/src/main/java/com/facebook/presto/cost/ValuesStatsRule.java @@ -14,12 +14,12 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.ComposableStatsCalculator.Rule; import com.facebook.presto.matching.Pattern; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.plan.ValuesNode; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.planner.iterative.Lookup; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/AddColumnTask.java b/presto-main/src/main/java/com/facebook/presto/execution/AddColumnTask.java index 369598cd34d69..641819e7037d2 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/AddColumnTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/AddColumnTask.java @@ -14,6 +14,7 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AccessControl; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.AddColumn; import com.facebook.presto.sql.tree.ColumnDefinition; @@ -34,10 +34,10 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.connector.ConnectorCapabilities.NOT_NULL_COLUMN_CONSTRAINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.NodeUtils.mapFromProperties; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.COLUMN_ALREADY_EXISTS; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.MISSING_TABLE; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java index f85e587ef0614..9bf93b7a8f253 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/AlterFunctionTask.java @@ -14,11 +14,11 @@ package com.facebook.presto.execution; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.RoutineCharacteristics.NullCallClause; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.AlterFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CallTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CallTask.java index 02124e32a5987..e24d5075bf52a 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CallTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CallTask.java @@ -14,16 +14,16 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.procedure.Procedure; import com.facebook.presto.spi.procedure.Procedure.Argument; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.planner.ParameterRewriter; import com.facebook.presto.sql.tree.Call; @@ -43,12 +43,12 @@ import java.util.Map.Entry; import java.util.function.Predicate; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; import static com.facebook.presto.spi.StandardErrorCode.INVALID_PROCEDURE_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_PROCEDURE_DEFINITION; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.PROCEDURE_CALL_FAILED; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.INVALID_PROCEDURE_ARGUMENTS; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.MISSING_CATALOG; import static com.facebook.presto.sql.planner.ExpressionInterpreter.evaluateConstantExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java index 33775045a98a1..a79e305ef832c 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CreateFunctionTask.java @@ -14,6 +14,7 @@ package com.facebook.presto.execution; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.PrestoException; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.function.SqlFunctionHandle; import com.facebook.presto.spi.function.SqlInvokedFunction; import com.facebook.presto.spi.function.SqlParameter; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.parser.SqlParser; @@ -35,9 +35,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.SqlFormatter.formatSql; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.util.concurrent.Futures.immediateFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/CreateTableTask.java b/presto-main/src/main/java/com/facebook/presto/execution/CreateTableTask.java index 1929793a95574..16c8418f649e5 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/CreateTableTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/CreateTableTask.java @@ -14,6 +14,7 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.metadata.TableMetadata; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.ColumnDefinition; import com.facebook.presto.sql.tree.CreateTable; @@ -44,12 +44,12 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; import static com.facebook.presto.spi.StandardErrorCode.ALREADY_EXISTS; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.connector.ConnectorCapabilities.NOT_NULL_COLUMN_CONSTRAINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.NodeUtils.mapFromProperties; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.DUPLICATE_COLUMN_NAME; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.MISSING_CATALOG; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java index 9561520f17e2b..a6e4cf15de90d 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/DropFunctionTask.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.DropFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/QueryExecution.java b/presto-main/src/main/java/com/facebook/presto/execution/QueryExecution.java index e8d26144c8290..79bf26c35b3c2 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/QueryExecution.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/QueryExecution.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.QueryPreparer.PreparedQuery; import com.facebook.presto.execution.QueryTracker.TrackedQuery; import com.facebook.presto.execution.StateMachine.StateChangeListener; @@ -20,7 +21,6 @@ import com.facebook.presto.memory.VersionedMemoryPoolId; import com.facebook.presto.server.BasicQueryInfo; import com.facebook.presto.spi.resourceGroups.QueryType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.Plan; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java b/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java index 98410c8c9e9c9..65afe6fc4e819 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/QueryStateMachine.java @@ -15,6 +15,7 @@ import com.facebook.airlift.log.Logger; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.QueryExecution.QueryOutputInfo; import com.facebook.presto.execution.StateMachine.StateChangeListener; import com.facebook.presto.execution.warnings.WarningCollector; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.resourceGroups.QueryType; import com.facebook.presto.spi.resourceGroups.ResourceGroupId; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.PlanFragment; import com.facebook.presto.transaction.TransactionId; import com.facebook.presto.transaction.TransactionInfo; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/SetSessionTask.java b/presto-main/src/main/java/com/facebook/presto/execution/SetSessionTask.java index 7032ab01f0f4d..a5989338701a4 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/SetSessionTask.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/SetSessionTask.java @@ -14,13 +14,13 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.QualifiedName; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskExecutionFactory.java b/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskExecutionFactory.java index a510bd7f2eac4..f192c7a722c56 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskExecutionFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskExecutionFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.concurrent.SetThreadName; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.event.SplitMonitor; import com.facebook.presto.execution.buffer.OutputBuffer; import com.facebook.presto.execution.executor.TaskExecutor; @@ -22,7 +23,6 @@ import com.facebook.presto.memory.QueryContext; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.operator.TaskExchangeClientManager; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.sql.gen.OrderingCompiler; import com.facebook.presto.sql.planner.HttpRemoteSourceFactory; import com.facebook.presto.sql.planner.LocalExecutionPlanner; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskManager.java b/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskManager.java index 2436dd21440b4..f88c1681a8bd0 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskManager.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/SqlTaskManager.java @@ -19,6 +19,7 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.airlift.stats.GcMonitor; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.event.SplitMonitor; import com.facebook.presto.execution.StateMachine.StateChangeListener; import com.facebook.presto.execution.buffer.BufferResult; @@ -35,7 +36,6 @@ import com.facebook.presto.operator.ExchangeClientSupplier; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spiller.LocalSpillManager; import com.facebook.presto.spiller.NodeSpillConfig; import com.facebook.presto.sql.gen.OrderingCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/buffer/PagesSerdeFactory.java b/presto-main/src/main/java/com/facebook/presto/execution/buffer/PagesSerdeFactory.java index 2f27b565677f6..6653642f49953 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/buffer/PagesSerdeFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/buffer/PagesSerdeFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.execution.buffer; -import com.facebook.presto.spi.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PageCompressor; import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/AbstractPropertyManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/AbstractPropertyManager.java index 7de7078291b14..a369d953f739f 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/AbstractPropertyManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/AbstractPropertyManager.java @@ -14,12 +14,12 @@ package com.facebook.presto.metadata; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.planner.ParameterRewriter; import com.facebook.presto.sql.tree.Expression; @@ -32,8 +32,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.sql.planner.ExpressionInterpreter.evaluateConstantExpression; import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/BoundVariables.java b/presto-main/src/main/java/com/facebook/presto/metadata/BoundVariables.java index 9f376831bab2a..1362e2ebe7d9b 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/BoundVariables.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/BoundVariables.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.metadata; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import java.util.HashMap; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java index 3cf74a0217e73..7f8d2c091e7f7 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java @@ -14,8 +14,15 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.InvalidFunctionArgumentException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockSerdeUtil; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.aggregation.ApproximateCountDistinctAggregation; import com.facebook.presto.operator.aggregation.ApproximateDoublePercentileAggregations; import com.facebook.presto.operator.aggregation.ApproximateDoublePercentileArrayAggregations; @@ -160,9 +167,6 @@ import com.facebook.presto.operator.window.SqlWindowFunction; import com.facebook.presto.operator.window.WindowFunctionSupplier; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.BlockSerdeUtil; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; @@ -173,9 +177,6 @@ import com.facebook.presto.spi.function.SqlFunction; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.SqlInvokedFunction; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.type.BigintOperators; @@ -233,6 +234,7 @@ import java.util.Optional; import static com.facebook.presto.common.function.OperatorType.tryGetOperatorType; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.SignatureBinder.applyBoundVariables; import static com.facebook.presto.operator.aggregation.ArbitraryAggregationFunction.ARBITRARY_AGGREGATION; import static com.facebook.presto.operator.aggregation.ChecksumAggregationFunction.CHECKSUM_AGGREGATION; @@ -318,7 +320,6 @@ import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.FunctionKind.WINDOW; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.planner.LiteralEncoder.MAGIC_LITERAL_FUNCTION_PREFIX; import static com.facebook.presto.type.DecimalCasts.BIGINT_TO_DECIMAL_CAST; @@ -782,6 +783,7 @@ public FunctionMetadata getFunctionMetadata(FunctionHandle functionHandle) } catch (UncheckedExecutionException e) { throwIfInstanceOf(e.getCause(), PrestoException.class); + throwIfInstanceOf(e.getCause(), InvalidFunctionArgumentException.class); throw e; } BuiltInFunction function = functionKey.getFunction(); diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java index ee16b78d78ec9..4db7425fa5e7a 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/FunctionManager.java @@ -16,13 +16,16 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.window.WindowFunctionSupplier; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.AlterRoutineCharacteristics; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionKind; @@ -35,9 +38,6 @@ import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunction; import com.facebook.presto.spi.function.SqlInvokedFunction; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.sql.gen.CacheStatsMBean; @@ -72,6 +72,7 @@ import java.util.stream.Collectors; import static com.facebook.presto.SystemSessionProperties.isListBuiltInFunctionsOnly; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.metadata.CastType.toOperatorType; import static com.facebook.presto.spi.StandardErrorCode.AMBIGUOUS_FUNCTION_CALL; @@ -81,7 +82,6 @@ import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.SqlFunctionVisibility.EXPERIMENTAL; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.planner.LiteralEncoder.MAGIC_LITERAL_FUNCTION_PREFIX; import static com.facebook.presto.sql.planner.LiteralEncoder.getMagicLiteralFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java b/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java index 951035bacb09c..cc48a96ac472f 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -24,7 +24,7 @@ import java.util.List; import java.util.Map; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java index 1999528b239c1..03e33c63a4cd5 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java @@ -15,6 +15,10 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; @@ -25,7 +29,6 @@ import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.connector.ConnectorCapabilities; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; @@ -38,9 +41,6 @@ import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.planner.PartitioningHandle; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java index 5b81b2a14341d..5ed3445a0a383 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java @@ -19,7 +19,11 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; @@ -39,7 +43,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.connector.ConnectorCapabilities; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; @@ -55,9 +58,6 @@ import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.sql.planner.PartitioningHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java index 26ff715c6db36..7dae34c04e909 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataUtil.java @@ -15,12 +15,12 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.security.PrestoPrincipal; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.GrantorSpecification; import com.facebook.presto.sql.tree.Node; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java b/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java index 028c92808c61c..ec3798d50fa2c 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/OperatorNotFoundException.java @@ -14,8 +14,8 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunction.java b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunction.java index 05bb681f898f8..6bfa6f9c6e251 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunction.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.MethodAndNativeContainerTypes; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.MethodsGroup; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.SpecializeContext; @@ -23,8 +25,6 @@ import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.util.Reflection; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java index fddbd1d06d592..143f3a1eb5003 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/PolymorphicScalarFunctionBuilder.java @@ -14,13 +14,13 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.PolymorphicScalarFunction.PolymorphicScalarFunctionChoice; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.reflect.Method; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/ProcedureRegistry.java b/presto-main/src/main/java/com/facebook/presto/metadata/ProcedureRegistry.java index c665a22198541..94f7042eeeb06 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/ProcedureRegistry.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/ProcedureRegistry.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.procedure.Procedure; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.Maps; import com.google.common.primitives.Primitives; @@ -30,14 +30,14 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.PROCEDURE_NOT_FOUND; import static com.facebook.presto.spi.procedure.Procedure.Argument; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SessionPropertyManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/SessionPropertyManager.java index 8d953d1368c24..b24b2163a416c 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SessionPropertyManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SessionPropertyManager.java @@ -17,18 +17,18 @@ import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.planner.ParameterRewriter; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.ExpressionTreeRewriter; @@ -46,8 +46,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SESSION_PROPERTY; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.sql.planner.ExpressionInterpreter.evaluateConstantExpression; import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBinder.java b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBinder.java index 4505621e07547..49259a06f10f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBinder.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBinder.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java index 2cc846784e920..a09f5d97131a3 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SignatureBuilder.java @@ -15,11 +15,11 @@ import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java index 3647dc0c046c3..761304ae640d3 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlAggregationFunction.java @@ -14,6 +14,8 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.function.FunctionKind; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java index b34faaae41645..5a5b2bf4a3684 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.TypeSignature; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java b/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java index 3b7f039a8b4af..b9e4356446f43 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/SqlScalarFunction.java @@ -14,9 +14,9 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.TypeManager; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/ViewDefinition.java b/presto-main/src/main/java/com/facebook/presto/metadata/ViewDefinition.java index 2646df96394b2..f726e2a54b5b7 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/ViewDefinition.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/ViewDefinition.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.metadata; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java index 6e0e814e19212..4b11f96e8cf55 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java b/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java index 4e8805954cf08..c92f287deca9a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.AggregationNode; -import com.facebook.presto.spi.type.Type; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java index 4bed37db8b6ab..070fa10889f58 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.execution.TaskId; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import java.util.concurrent.atomic.AtomicLong; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java index c1f12bef445ac..63fedf3196fd7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java @@ -15,13 +15,13 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.BigintOperators; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -29,8 +29,8 @@ import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.type.TypeUtils.NULL_HASH_CODE; import static com.facebook.presto.util.HashCollisionsEstimator.estimateNumberOfHashCollisions; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java b/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java index f680ecfb0ed11..65c529bc45d29 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java index a2c0b416c3f44..d2fb0fa12a431 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.execution.TaskId; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.slice.Slice; @@ -30,9 +30,9 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.concurrent.MoreFutures.toListenableFuture; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.wrappedBuffer; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java index 9ee1f823dc8ed..ad412e676c8d0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java index 11381bc08363f..b17298e0ce483 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.ByteArrayBlock; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.ByteArrayBlock; import com.facebook.presto.spi.plan.PlanNodeId; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ExchangeClient.java b/presto-main/src/main/java/com/facebook/presto/operator/ExchangeClient.java index e447b6e147e14..f49d9131d9a83 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ExchangeClient.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ExchangeClient.java @@ -52,8 +52,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Throwables.throwIfUnchecked; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java index c3f31146a3b77..65d97a3120362 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryPerformanceFetcher; import com.facebook.presto.execution.StageId; import com.facebook.presto.execution.StageInfo; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.planPrinter.PlanPrinter.textDistributedPlan; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java index fbb5cca28d34f..f3ceb3e8d301f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.project.MergingPageOutput; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java index d6eebd573f248..1ae06b2347794 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; @@ -24,8 +24,8 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.isDictionaryAggregationEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.UpdateMemory.NOOP; -import static com.facebook.presto.spi.type.BigintType.BIGINT; public interface GroupByHash { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupByIdBlock.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupByIdBlock.java index 4ec8841dc0510..22695f9e32db3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupByIdBlock.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupByIdBlock.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; import java.util.function.BiConsumer; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java index 4a338e7922f7a..02ade9512d29d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.Arrays; import java.util.List; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java index 4869c714e6d96..24abb4c0b8798 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; @@ -34,7 +34,7 @@ import java.util.List; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java index 5d40b8ca3daca..1f58e3947a6c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.operator.aggregation.builder.HashAggregationBuilder; @@ -23,8 +25,6 @@ import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SpillerFactory; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java index 1c3090c1ba55f..0269d83a2a8a8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.SetBuilderOperator.SetSupplier; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import static com.facebook.airlift.concurrent.MoreFutures.tryGetFutureValue; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java index 2d75575b2240d..8f52c1fb9ad01 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.CombineHashFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinBridgeManager.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinBridgeManager.java index 6d0c4ba89c36f..3e53ac04226f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinBridgeManager.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinBridgeManager.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java index c74af6be3f7b9..9ea700f997d3a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java index d4f3888c31872..2ecb15ce4542f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import java.util.List; import java.util.Optional; import java.util.OptionalInt; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class JoinProbe { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java index 906182d24dd64..0307082f5cfe8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java index 2518f6a0aba9b..937a7f6a6d924 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.PlanNodeId; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java index 58107c01b6084..1ea5835cab24b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; import com.facebook.presto.operator.LookupJoinOperators.JoinType; import com.facebook.presto.operator.LookupSourceProvider.LookupSourceLease; import com.facebook.presto.operator.PartitionedConsumption.Partition; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.PartitioningSpiller; import com.facebook.presto.spiller.PartitioningSpiller.PartitioningSpillResult; import com.facebook.presto.spiller.PartitioningSpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperatorFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperatorFactory.java index a6365e5c7bd75..223c74506f5f0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperatorFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperatorFactory.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; import com.facebook.presto.operator.LookupJoinOperators.JoinType; import com.facebook.presto.operator.LookupOuterOperator.LookupOuterOperatorFactory; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.PartitioningSpillerFactory; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperators.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperators.java index b978ad2450884..9b69a63279c09 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperators.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.PartitioningSpillerFactory; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java index e03fc938e1906..915909a86f60d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import it.unimi.dsi.fastutil.ints.IntArrayList; import java.util.List; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java index de34a14770256..1422785782463 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupSourceFactory.java index 9c328fb6bcd73..f1c10516aac5e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupSourceFactory.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.util.concurrent.ListenableFuture; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java index cac625f3ddc42..3560714f11039 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; @@ -25,8 +25,8 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.isDictionaryAggregationEnabled; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.operator.GroupByHash.createGroupByHash; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; public class MarkDistinctHash { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java index db9780a360d59..76b956dba0e37 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -27,7 +27,7 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java b/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java index 00686c5e64c2c..2a5207010c1af 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.util.MergeSortedPages.PageWithPosition; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java index 24e420f1c1adf..0b343dd149b13 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.metadata.Split; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.RemoteSplit; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.io.Closer; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java index 326a6dfc2cd47..9a601be7c2387 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.OptionalLong; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java index c70cedb74ed72..9a778dc9a1e68 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -34,11 +34,11 @@ import java.util.Optional; import java.util.OptionalInt; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.SyntheticAddress.decodePosition; import static com.facebook.presto.operator.SyntheticAddress.decodeSliceIndex; import static com.facebook.presto.operator.SyntheticAddress.encodeSyntheticAddress; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.gen.JoinCompiler.PagesHashStrategyFactory; import static com.facebook.presto.util.HashCollisionsEstimator.estimateNumberOfHashCollisions; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java index ab174733a40c7..921cb6c25c28d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java index afa4681dd3eea..492b92f0c5b3d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class NoChannelGroupByHash implements GroupByHash diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java index 1cd536c720c67..65214930baa7d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java index 1c8e05e576aba..295023601391c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java index e8e84a6a1d671..73135d31b2b4c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java @@ -15,6 +15,10 @@ import com.facebook.airlift.log.Logger; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.metadata.FunctionManager; @@ -23,10 +27,6 @@ import com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.sql.gen.JoinCompiler.LookupSourceSupplierFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java index 01c6da3709356..cdf589b64ffd0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java @@ -16,6 +16,8 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCPoint; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.GeometryUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.geospatial.rtree.Flatbush; @@ -23,8 +25,6 @@ import com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import io.airlift.slice.Slice; import it.unimi.dsi.fastutil.ints.IntArrayList; @@ -36,13 +36,13 @@ import java.util.Optional; import java.util.OptionalDouble; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.geospatial.GeometryUtils.getExtent; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.deserialize; import static com.facebook.presto.operator.JoinUtils.channelsToPages; import static com.facebook.presto.operator.SyntheticAddress.decodePosition; import static com.facebook.presto.operator.SyntheticAddress.decodeSliceIndex; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Verify.verify; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexFactory.java index 3e7e79c380eb8..26efb15fae6c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexSupplier.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexSupplier.java index 381727006acad..fe78cc9e2d9c3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndexSupplier.java @@ -19,13 +19,13 @@ import com.esri.core.geometry.OperatorFactoryLocal; import com.esri.core.geometry.ogc.OGCGeometry; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.geospatial.rtree.Flatbush; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.PagesRTreeIndex.GeometryWithPosition; import com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler; import io.airlift.slice.Slice; import io.airlift.units.DataSize; @@ -38,12 +38,12 @@ import java.util.Optional; import java.util.function.Supplier; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.geospatial.serde.EsriGeometrySerde.deserialize; import static com.facebook.presto.operator.PagesSpatialIndex.EMPTY_INDEX; import static com.facebook.presto.operator.SyntheticAddress.decodePosition; import static com.facebook.presto.operator.SyntheticAddress.decodeSliceIndex; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Verify.verify; import static io.airlift.units.DataSize.Unit.BYTE; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ParametricFunctionHelpers.java b/presto-main/src/main/java/com/facebook/presto/operator/ParametricFunctionHelpers.java index 23f820c782cf1..5c7b7cb5c313a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ParametricFunctionHelpers.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ParametricFunctionHelpers.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.annotations.ImplementationDependency; -import com.facebook.presto.spi.type.TypeManager; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ParametricImplementationsGroup.java b/presto-main/src/main/java/com/facebook/presto/operator/ParametricImplementationsGroup.java index 4809a99c6c34b..616fecf514f8b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ParametricImplementationsGroup.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ParametricImplementationsGroup.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java index de36265987e37..574bb702261f0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java index 30bd096edf4be..f4164aad0c496 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.LookupSourceProvider.LookupSourceLease; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java index dde76d37aa484..16f4ab7e9fcda 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.BigintType; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java index 12c5f12a17f04..7f654d33623ac 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.Comparator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java index ccdc0e4f69ddd..466358e6be422 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -31,8 +31,8 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.isDictionaryAggregationEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.GroupByHash.createGroupByHash; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java index 23c0ba7790933..44aee522fb2f5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.metadata.Split; import com.facebook.presto.operator.project.CursorProcessor; @@ -27,11 +31,7 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.EmptySplit; import com.facebook.presto.split.EmptySplitPageSource; import com.facebook.presto.split.PageSourceProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java index 1ff7384cd9c8c..dac5521a35deb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.ChannelSet.ChannelSetBuilder; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimpleArrayAllocator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimpleArrayAllocator.java index d0798e40a5d15..be53c2f7b953a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimpleArrayAllocator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimpleArrayAllocator.java @@ -14,7 +14,7 @@ package com.facebook.presto.operator; -import com.facebook.presto.spi.block.ArrayAllocator; +import com.facebook.presto.common.block.ArrayAllocator; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java index c6363ce7c3f23..03cb6a49efe7f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java index c54853f40bd8f..2ad90b04702e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; @@ -28,7 +28,7 @@ import java.util.OptionalInt; import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java index 7a5ea6c45129e..df724f85e8a4c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java index afa09927ffefa..a74f4502f5fb1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java index f0f4232c05d2a..63e422142acd2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.plan.SpatialJoinNode; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java index ef16c548f1a63..b03d5d7a8d0b7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; import com.google.common.collect.ImmutableList; @@ -27,8 +27,8 @@ import java.util.List; import java.util.Objects; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java index 668d73ffb12f6..978147456b54d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java index dffe368d25321..999a32fdc514e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java @@ -15,17 +15,17 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.operator.OperationTimer.OperationTiming; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -43,13 +43,13 @@ import java.util.concurrent.ExecutionException; import static com.facebook.presto.SystemSessionProperties.isStatisticsCpuTimerEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT; import static com.facebook.presto.operator.TableWriterUtils.FRAGMENT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.ROW_COUNT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.extractStatisticsRows; import static com.facebook.presto.operator.TableWriterUtils.getTableCommitContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Throwables.propagateIfPossible; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java index 152f173e35481..6d359b7c05c4e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java @@ -15,15 +15,15 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.OperationTimer.OperationTiming; import com.facebook.presto.operator.aggregation.builder.InMemoryHashAggregationBuilder; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.slice.Slice; @@ -33,12 +33,12 @@ import java.util.Queue; import static com.facebook.presto.SystemSessionProperties.isStatisticsCpuTimerEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.TableWriterUtils.CONTEXT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.FRAGMENT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.ROW_COUNT_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.createStatisticsPage; import static com.facebook.presto.operator.TableWriterUtils.extractStatisticsRows; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java index 20526270029d1..08ff794d3a6c6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java @@ -15,6 +15,10 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.scheduler.ExecutionWriterTarget; import com.facebook.presto.execution.scheduler.ExecutionWriterTarget.CreateHandle; @@ -24,11 +28,7 @@ import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.PageSinkManager; import com.facebook.presto.util.AutoCloseableCloser; import com.facebook.presto.util.Mergeable; @@ -48,10 +48,10 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.concurrent.MoreFutures.toListenableFuture; import static com.facebook.presto.SystemSessionProperties.isStatisticsCpuTimerEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.operator.TableWriterUtils.STATS_START_CHANNEL; import static com.facebook.presto.operator.TableWriterUtils.createStatisticsPage; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java index 6b5d67047187d..712880ce96fe4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java index 9f1d87d2648d1..d60df42bf77b5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.OutputBuffer; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.google.common.util.concurrent.ListenableFuture; @@ -27,8 +27,8 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.execution.buffer.PageSplitterUtil.splitPage; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java index 98cc075e84126..2c26f1b1244ab 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java index 2605978eeec4e..af6fba89ddcb7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -29,8 +29,8 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.isDictionaryAggregationEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.GroupByHash.createGroupByHash; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/WindowFunctionDefinition.java b/presto-main/src/main/java/com/facebook/presto/operator/WindowFunctionDefinition.java index 6a339a3ec78bc..eaee3ceb75926 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/WindowFunctionDefinition.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/WindowFunctionDefinition.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.window.FrameInfo; import com.facebook.presto.operator.window.WindowFunctionSupplier; import com.facebook.presto.spi.function.WindowFunction; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.Arrays; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java index a2d709e3eade2..a0b062489d7b1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.window.FramedWindowFunction; import com.facebook.presto.operator.window.WindowPartition; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -35,7 +35,7 @@ import java.util.function.BiPredicate; import java.util.stream.Stream; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkPositionIndex; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java index 095fb14a52f7d..14333c261d8d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java @@ -15,9 +15,9 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.ShortBigArray; +import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java index 94029c32948f2..185c4fe1cbcaf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxAggregationFunction.java @@ -14,7 +14,11 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -25,13 +29,9 @@ import com.facebook.presto.operator.aggregation.state.NullableDoubleState; import com.facebook.presto.operator.aggregation.state.NullableLongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; @@ -39,6 +39,7 @@ import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -46,7 +47,6 @@ import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxNAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxNAggregationFunction.java index 4ece5e7312b62..572269c827ecd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxNAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractMinMaxNAggregationFunction.java @@ -14,6 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -22,18 +28,14 @@ import com.facebook.presto.operator.aggregation.state.MinMaxNStateFactory; import com.facebook.presto.operator.aggregation.state.MinMaxNStateSerializer; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -42,8 +44,6 @@ import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java index fa1690ed754dc..296b26127943e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.WindowIndex; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java index e7b80324250a8..dbc11a75a5c2c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java @@ -26,18 +26,18 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.expression.BytecodeExpressions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.WindowIndex; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.Binding; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.CompilerOperations; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorFactoryBinder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorFactoryBinder.java index a7732d70018ce..d8e5127c453d0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorFactoryBinder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorFactoryBinder.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationFromAnnotationsParser.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationFromAnnotationsParser.java index 3727e77e7d20e..0f60afe6cfcac 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationFromAnnotationsParser.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationFromAnnotationsParser.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.ParametricImplementationsGroup; import com.facebook.presto.operator.annotations.FunctionsParserHelper; import com.facebook.presto.spi.function.AccumulatorState; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java index f945bc98e1420..1af38ce74e078 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationImplementation.java @@ -13,13 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.operator.ParametricImplementation; import com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType; import com.facebook.presto.operator.annotations.FunctionsParserHelper; import com.facebook.presto.operator.annotations.ImplementationDependency; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; @@ -27,12 +30,9 @@ import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.lang.annotation.Annotation; @@ -45,6 +45,7 @@ import java.util.Set; import java.util.stream.Stream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; @@ -56,7 +57,6 @@ import static com.facebook.presto.operator.annotations.ImplementationDependency.getImplementationDependencyAnnotation; import static com.facebook.presto.operator.annotations.ImplementationDependency.isImplementationDependencyAnnotation; import static com.facebook.presto.operator.annotations.ImplementationDependency.validateImplementationDependencyAnnotation; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationMetadata.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationMetadata.java index 88077e9c53410..b4f937397885b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationMetadata.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationMetadata.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java index 889cf4fbf7d01..3c3ac7753cd6c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.state.CentralMomentsState; import com.facebook.presto.operator.aggregation.state.CorrelationState; @@ -20,9 +22,7 @@ import com.facebook.presto.operator.aggregation.state.RegressionState; import com.facebook.presto.operator.aggregation.state.VarianceState; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.plan.AggregationNode; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.base.CaseFormat; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java index 3d4a53215e24f..6eefa4ba7344f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateCountDistinctAggregation.java @@ -14,10 +14,11 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.BooleanDistinctState; import com.facebook.presto.operator.aggregation.state.HyperLogLogState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; @@ -28,13 +29,12 @@ import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.util.Failures.internalError; @AggregationFunction("approx_distinct") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileAggregations.java index 7228cdba7a3a7..5e434be18e2fd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileAggregations.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.doubleToSortableLong; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableLongToDouble; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.util.Failures.checkCondition; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileArrayAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileArrayAggregations.java index 03e0375076f37..ca37a1c32e65f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileArrayAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateDoublePercentileArrayAggregations.java @@ -14,22 +14,22 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileArrayState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import java.util.List; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.doubleToSortableLong; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableLongToDouble; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction("approx_percentile") public final class ApproximateDoublePercentileArrayAggregations diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileAggregations.java index 1e4c48b134d0e..d013387b68da2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileAggregations.java @@ -14,18 +14,18 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.util.Failures.checkCondition; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileArrayAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileArrayAggregations.java index 6b93e7b39374f..cbf8329768f07 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileArrayAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateLongPercentileArrayAggregations.java @@ -14,27 +14,27 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileArrayState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.ApproximateLongPercentileAggregations.DEFAULT_ACCURACY; import static com.facebook.presto.operator.aggregation.ApproximateLongPercentileAggregations.DEFAULT_WEIGHT; import static com.facebook.presto.operator.aggregation.ApproximateLongPercentileAggregations.checkAccuracy; import static com.facebook.presto.operator.aggregation.ApproximateLongPercentileAggregations.checkWeight; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.util.Failures.checkCondition; @AggregationFunction("approx_percentile") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileAggregations.java index a92ebd17d8c93..0efa8396784aa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileAggregations.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.floatToSortableInt; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableIntToFloat; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.util.Failures.checkCondition; import static com.google.common.base.Preconditions.checkState; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileArrayAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileArrayAggregations.java index 119ac2e913be9..df057cb2329d6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileArrayAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateRealPercentileArrayAggregations.java @@ -14,22 +14,22 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.DigestAndPercentileArrayState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import java.util.List; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.floatToSortableInt; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableIntToFloat; -import static com.facebook.presto.spi.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateSetAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateSetAggregation.java index d86da8275e477..2539ae6d7c046 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateSetAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ApproximateSetAggregation.java @@ -14,9 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.HyperLogLogState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; @AggregationFunction("approx_set") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ArbitraryAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ArbitraryAggregationFunction.java index 3d52c0d3e6b70..e724a25afd5b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ArbitraryAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ArbitraryAggregationFunction.java @@ -14,6 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -24,24 +28,20 @@ import com.facebook.presto.operator.aggregation.state.NullableDoubleState; import com.facebook.presto.operator.aggregation.state.NullableLongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AverageAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AverageAggregations.java index 997647698fc67..eac1338f311a6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AverageAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AverageAggregations.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongAndDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; @AggregationFunction("avg") public final class AverageAggregations diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseAndAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseAndAggregation.java index f7a4baeef7276..a8cfd21b6f6e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseAndAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseAndAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; @AggregationFunction("bitwise_and_agg") public final class BitwiseAndAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseOrAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseOrAggregation.java index 9bcf6a47aaa00..67b93e4b02d6e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseOrAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BitwiseOrAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; @AggregationFunction("bitwise_or_agg") public class BitwiseOrAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BlockComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BlockComparator.java index f877d5f892ab1..63c557b39fc6d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BlockComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BlockComparator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface BlockComparator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanAndAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanAndAggregation.java index 645553b6b813a..9b065b3287f13 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanAndAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanAndAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.TriStateBooleanState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.FALSE_VALUE; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.NULL_VALUE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanOrAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanOrAggregation.java index 77b35ef4880bf..24fb1cc3e38ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanOrAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/BooleanOrAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.TriStateBooleanState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.FALSE_VALUE; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.NULL_VALUE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CentralMomentsAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CentralMomentsAggregation.java index 56432340c328b..62c608b3ebfa2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CentralMomentsAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CentralMomentsAggregation.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.CentralMomentsState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -22,11 +23,10 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationUtils.mergeCentralMomentsState; import static com.facebook.presto.operator.aggregation.AggregationUtils.updateCentralMomentsState; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction @Description("Returns the central moments of the argument as an array") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ChecksumAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ChecksumAggregationFunction.java index 45ed6a317943b..16afe99d8ebab 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ChecksumAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ChecksumAggregationFunction.java @@ -14,32 +14,32 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import com.facebook.presto.operator.aggregation.state.NullableLongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.NULLABLE_BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.slice.Slices.wrappedLongArray; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationFallOutAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationFallOutAggregation.java index a74cbdbb93dff..da78a85a8607b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationFallOutAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationFallOutAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.DoubleType; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationMissRateAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationMissRateAggregation.java index d10f4547d991f..dc327a31e3bfe 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationMissRateAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationMissRateAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.DoubleType; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationPrecisionAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationPrecisionAggregation.java index f6868af880d73..c24acadd53527 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationPrecisionAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationPrecisionAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.DoubleType; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationRecallAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationRecallAggregation.java index 5a7a78ccdfd5e..9adef7781a958 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationRecallAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationRecallAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.DoubleType; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationThresholdsAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationThresholdsAggregation.java index 15efd1bdc4747..0cab65a88fd81 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationThresholdsAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ClassificationThresholdsAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.DoubleType; import java.util.Iterator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountAggregation.java index 64abf6a5d53b9..7e2e3ce264801 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @AggregationFunction("count") public final class CountAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountColumn.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountColumn.java index 01199965ce280..6c88b66ac91bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountColumn.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountColumn.java @@ -14,32 +14,32 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import com.facebook.presto.operator.aggregation.state.LongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountIfAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountIfAggregation.java index d22869361c1e4..2900b71e687b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountIfAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/CountIfAggregation.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @AggregationFunction("count_if") public final class CountIfAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalAverageAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalAverageAggregation.java index 36a6ee8661eb9..cc98a7b4bfbcb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalAverageAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalAverageAggregation.java @@ -14,6 +14,13 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,15 +28,8 @@ import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowAndLongState; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowAndLongStateFactory; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowAndLongStateSerializer; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -40,16 +40,16 @@ import java.math.BigInteger; import java.util.List; +import static com.facebook.presto.common.type.Decimals.writeBigDecimal; +import static com.facebook.presto.common.type.Decimals.writeShortDecimal; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; import static com.facebook.presto.metadata.SignatureBinder.applyBoundVariables; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; -import static com.facebook.presto.spi.type.Decimals.writeBigDecimal; -import static com.facebook.presto.spi.type.Decimals.writeShortDecimal; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalSumAggregation.java index 7656d54f07078..75e054023dfe9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DecimalSumAggregation.java @@ -14,6 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,15 +27,9 @@ import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowState; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowStateFactory; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowStateSerializer; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.FunctionKind; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; @@ -37,16 +37,16 @@ import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.throwIfOverflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.throwOverflowException; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static com.facebook.presto.metadata.SignatureBinder.applyBoundVariables; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.throwIfOverflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.throwOverflowException; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java index e8f6a873c6bbf..069b719ec6bdf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DefaultApproximateCountDistinctAggregation.java @@ -13,10 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.BooleanDistinctState; import com.facebook.presto.operator.aggregation.state.HyperLogLogState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCorrelationAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCorrelationAggregation.java index 5b238ba2e42a1..6288fc0d38fc6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCorrelationAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCorrelationAggregation.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.CorrelationState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCorrelation; import static com.facebook.presto.operator.aggregation.AggregationUtils.mergeCorrelationState; import static com.facebook.presto.operator.aggregation.AggregationUtils.updateCorrelationState; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction("corr") public class DoubleCorrelationAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCovarianceAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCovarianceAggregation.java index d6ded56e687ae..185c4b8c37fe6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCovarianceAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleCovarianceAggregation.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.CovarianceState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCovariancePopulation; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCovarianceSample; import static com.facebook.presto.operator.aggregation.AggregationUtils.mergeCovarianceState; import static com.facebook.presto.operator.aggregation.AggregationUtils.updateCovarianceState; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction public class DoubleCovarianceAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleHistogramAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleHistogramAggregation.java index 5711d6b4c5688..c3a74e5131598 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleHistogramAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleHistogramAggregation.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.operator.aggregation.state.DoubleHistogramStateSerializer; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; import com.facebook.presto.spi.function.AggregationFunction; @@ -23,13 +24,12 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.DoubleType; import java.util.Map; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; import static com.facebook.presto.util.Failures.checkCondition; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleRegressionAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleRegressionAggregation.java index efd93fb847f77..db3ad26ec5d6d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleRegressionAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleRegressionAggregation.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.RegressionState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationUtils.getRegressionIntercept; import static com.facebook.presto.operator.aggregation.AggregationUtils.getRegressionSlope; import static com.facebook.presto.operator.aggregation.AggregationUtils.mergeRegressionState; import static com.facebook.presto.operator.aggregation.AggregationUtils.updateRegressionState; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction public class DoubleRegressionAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleSumAggregation.java index dea776647fd19..8c3ce3ea81bf2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/DoubleSumAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.StandardTypes; @AggregationFunction("sum") public final class DoubleSumAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/EntropyAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/EntropyAggregation.java index f31d5606ebdba..7b77a8c1bb02e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/EntropyAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/EntropyAggregation.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.EntropyState; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -23,10 +24,9 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; /** * Calculates the log-2 entropy of count inputs. diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java index 3d590c8e56a07..257ed111975da 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java @@ -14,6 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.MarkDistinctHash; import com.facebook.presto.operator.PagesIndex; @@ -21,11 +25,7 @@ import com.facebook.presto.operator.Work; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.WindowIndex; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -40,8 +40,8 @@ import java.util.Optional; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.Long.max; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactoryBinder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactoryBinder.java index 7edb6582a3126..d475f1e2dd8ef 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactoryBinder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactoryBinder.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GeometricMeanAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GeometricMeanAggregations.java index 456c1571721a9..40c0cfa176eda 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GeometricMeanAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GeometricMeanAggregations.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongAndDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; @AggregationFunction("geometric_mean") public final class GeometricMeanAggregations diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java index 7e6350ea0a80e..9ef1d85cbbcb3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; public interface GroupedAccumulator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/InternalAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/InternalAggregationFunction.java index 25e0df6d4030b..13f87998f2f6d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/InternalAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/InternalAggregationFunction.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondAverageAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondAverageAggregation.java index 02b7bafcf832d..059e285966901 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondAverageAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondAverageAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongAndDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; import static java.lang.Math.round; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondSumAggregation.java index 0cbe04c414849..44256914c3172 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalDayToSecondSumAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; @@ -22,7 +22,7 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.type.BigintOperators; -import static com.facebook.presto.spi.type.StandardTypes.INTERVAL_DAY_TO_SECOND; +import static com.facebook.presto.common.type.StandardTypes.INTERVAL_DAY_TO_SECOND; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; @AggregationFunction("sum") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthAverageAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthAverageAggregation.java index e5be21f31595d..49fefbe63a9a7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthAverageAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthAverageAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongAndDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; import static java.lang.Math.round; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthSumAggregation.java index 4024ebaf470f5..8b9633b67ef2d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/IntervalYearToMonthSumAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; @@ -22,7 +22,7 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.type.BigintOperators; -import static com.facebook.presto.spi.type.StandardTypes.INTERVAL_YEAR_TO_MONTH; +import static com.facebook.presto.common.type.StandardTypes.INTERVAL_YEAR_TO_MONTH; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; @AggregationFunction("sum") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/KeyValuePairs.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/KeyValuePairs.java index 7e20733f3cccf..eb00c71e7d546 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/KeyValuePairs.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/KeyValuePairs.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import java.util.Arrays; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LazyAccumulatorFactoryBinder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LazyAccumulatorFactoryBinder.java index c8a302a56395c..c55b4b9466d64 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LazyAccumulatorFactoryBinder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LazyAccumulatorFactoryBinder.java @@ -15,9 +15,9 @@ import com.facebook.presto.Session; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Supplier; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LongSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LongSumAggregation.java index c857b3667233a..caca1a6952d3a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LongSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/LongSumAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.BigintOperators; @AggregationFunction("sum") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapAggregationFunction.java index fe6ea0b956fec..37d57777b9757 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapAggregationFunction.java @@ -14,6 +14,13 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,18 +28,12 @@ import com.facebook.presto.operator.aggregation.state.KeyValuePairStateSerializer; import com.facebook.presto.operator.aggregation.state.KeyValuePairsState; import com.facebook.presto.operator.aggregation.state.KeyValuePairsStateFactory; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -41,7 +42,6 @@ import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapUnionAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapUnionAggregation.java index aa0acb984b22a..6a733e0afeb92 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapUnionAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MapUnionAggregation.java @@ -14,6 +14,13 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,25 +28,18 @@ import com.facebook.presto.operator.aggregation.state.KeyValuePairStateSerializer; import com.facebook.presto.operator.aggregation.state.KeyValuePairsState; import com.facebook.presto.operator.aggregation.state.KeyValuePairsStateFactory; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MaxDataSizeForStats.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MaxDataSizeForStats.java index 5ea4fcc94e255..9d82657e21e21 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MaxDataSizeForStats.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MaxDataSizeForStats.java @@ -13,9 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; import static java.lang.Math.max; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeHyperLogLogAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeHyperLogLogAggregation.java index 1760129f498b3..0043eb358826a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeHyperLogLogAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeHyperLogLogAggregation.java @@ -14,9 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.HyperLogLogState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; @AggregationFunction("merge") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeQuantileDigestFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeQuantileDigestFunction.java index a03efdd2e4eb0..4522a2df25911 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeQuantileDigestFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeQuantileDigestFunction.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.StatisticalDigestState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.StandardTypes.QDIGEST; import static com.facebook.presto.operator.aggregation.StatisticalDigestFactory.createStatisticalQuantileDigest; import static com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory.createQuantileDigestFactory; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.StandardTypes.QDIGEST; import static com.facebook.presto.util.Reflection.methodHandle; public class MergeQuantileDigestFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java index 29d2203510ef0..c3c37407b3a8a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeStatisticalDigestFunction.java @@ -14,24 +14,25 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; import com.facebook.presto.operator.aggregation.state.StatisticalDigestState; import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory; import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateSerializer; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; @@ -41,7 +42,6 @@ import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.FunctionKind.AGGREGATE; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public abstract class MergeStatisticalDigestFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeTDigestFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeTDigestFunction.java index caafff0695d69..3accb58bc3362 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeTDigestFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/MergeTDigestFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.StatisticalDigestState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.StandardTypes.TDIGEST; import static com.facebook.presto.operator.aggregation.StatisticalDigestFactory.createStatisticalTDigest; import static com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory.createTDigestFactory; import static com.facebook.presto.spi.function.SqlFunctionVisibility.EXPERIMENTAL; -import static com.facebook.presto.spi.type.StandardTypes.TDIGEST; import static com.facebook.presto.tdigest.TDigest.createTDigest; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ParametricAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ParametricAggregation.java index 95c6458283639..802b0cde328e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ParametricAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ParametricAggregation.java @@ -14,6 +14,9 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -26,9 +29,6 @@ import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/PrecisionRecallAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/PrecisionRecallAggregation.java index 9e2c7295a63be..c7ffbd66fb605 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/PrecisionRecallAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/PrecisionRecallAggregation.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.fixedhistogram.FixedDoubleHistogram; import com.facebook.presto.operator.aggregation.state.PrecisionRecallState; import com.facebook.presto.spi.PrestoException; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.Streams; import java.util.Collections; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/QuantileDigestAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/QuantileDigestAggregationFunction.java index 58f9759396021..23ddfaae28002 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/QuantileDigestAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/QuantileDigestAggregationFunction.java @@ -14,10 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.aggregation.state.StatisticalDigestState; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; +import static com.facebook.presto.common.type.StandardTypes.QDIGEST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.doubleToSortableLong; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.floatToSortableInt; import static com.facebook.presto.operator.aggregation.StatisticalDigestFactory.createStatisticalQuantileDigest; @@ -25,8 +27,6 @@ import static com.facebook.presto.operator.scalar.QuantileDigestFunctions.verifyAccuracy; import static com.facebook.presto.operator.scalar.QuantileDigestFunctions.verifyWeight; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.StandardTypes.QDIGEST; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.lang.Float.intBitsToFloat; public final class QuantileDigestAggregationFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealAverageAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealAverageAggregation.java index 765fdd44895f2..4d8ad493be17d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealAverageAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealAverageAggregation.java @@ -14,6 +14,10 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -21,25 +25,21 @@ import com.facebook.presto.operator.aggregation.state.DoubleState; import com.facebook.presto.operator.aggregation.state.LongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.Float.floatToIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCorrelationAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCorrelationAggregation.java index 5ec092c76effd..2f41a42f2aef7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCorrelationAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCorrelationAggregation.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.CorrelationState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCorrelation; -import static com.facebook.presto.spi.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCovarianceAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCovarianceAggregation.java index 4f89564483480..bebe625a5a368 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCovarianceAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealCovarianceAggregation.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.CovarianceState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCovariancePopulation; import static com.facebook.presto.operator.aggregation.AggregationUtils.getCovarianceSample; -import static com.facebook.presto.spi.type.RealType.REAL; import static java.lang.Float.intBitsToFloat; @AggregationFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealGeometricMeanAggregations.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealGeometricMeanAggregations.java index 21c7226295abd..815942df56bec 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealGeometricMeanAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealGeometricMeanAggregations.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.LongAndDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealHistogramAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealHistogramAggregation.java index 1097d4f687aa7..72a6d25168225 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealHistogramAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealHistogramAggregation.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import java.util.Map; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealRegressionAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealRegressionAggregation.java index a2781f6c9ee2e..a75222bfa93c4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealRegressionAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealRegressionAggregation.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.RegressionState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationUtils.getRegressionIntercept; import static com.facebook.presto.operator.aggregation.AggregationUtils.getRegressionSlope; -import static com.facebook.presto.spi.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealSumAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealSumAggregation.java index 7bf2fe0370b93..7c3f5ec7915ac 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealSumAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/RealSumAggregation.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableDoubleState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ReduceAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ReduceAggregationFunction.java index 39f951e58327f..2cd8b40679052 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ReduceAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/ReduceAggregationFunction.java @@ -14,6 +14,9 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -24,21 +27,18 @@ import com.facebook.presto.operator.aggregation.state.NullableLongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java index ebc210847c7e2..9283a18bdb253 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/StatisticalDigestAggregationFunction.java @@ -14,7 +14,13 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -22,20 +28,19 @@ import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory; import com.facebook.presto.operator.aggregation.state.StatisticalDigestStateSerializer; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.QDIGEST; +import static com.facebook.presto.common.type.StandardTypes.TDIGEST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; @@ -48,11 +53,6 @@ import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.FunctionKind.AGGREGATE; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.QDIGEST; -import static com.facebook.presto.spi.type.StandardTypes.TDIGEST; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/SumDataSizeForStats.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/SumDataSizeForStats.java index 5d82d3964356a..c8b32c448959e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/SumDataSizeForStats.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/SumDataSizeForStats.java @@ -13,9 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TDigestAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TDigestAggregationFunction.java index ce32f3cc51d5f..5e4b3882413b6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TDigestAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TDigestAggregationFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.aggregation.state.StatisticalDigestState; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; +import static com.facebook.presto.common.type.StandardTypes.TDIGEST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.StatisticalDigestFactory.createStatisticalTDigest; import static com.facebook.presto.operator.aggregation.state.StatisticalDigestStateFactory.createTDigestFactory; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.SqlFunctionVisibility.EXPERIMENTAL; -import static com.facebook.presto.spi.type.StandardTypes.TDIGEST; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.tdigest.TDigest.createTDigest; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedHeap.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedHeap.java index 945fd0f70f6eb..3dd157391ed16 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedHeap.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedHeap.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedKeyValueHeap.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedKeyValueHeap.java index c062835f83baa..5555cff238a17 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedKeyValueHeap.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedKeyValueHeap.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedSet.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedSet.java index 6843e5cfa3bb4..21720197640de 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/TypedSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import io.airlift.units.DataSize; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/VarianceAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/VarianceAggregation.java index 9445b39916e96..df74ae015f27c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/VarianceAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/VarianceAggregation.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.VarianceState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -22,11 +23,10 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationUtils.mergeVarianceState; import static com.facebook.presto.operator.aggregation.AggregationUtils.updateVarianceState; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; @AggregationFunction public final class VarianceAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationFunction.java index ba155c6fc0837..04e7a862098e8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationFunction.java @@ -14,6 +14,11 @@ package com.facebook.presto.operator.aggregation.arrayagg; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -23,26 +28,21 @@ import com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import com.facebook.presto.operator.aggregation.GenericAccumulatorFactoryBinder; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.NULLABLE_BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationState.java index 48249f20495e0..13875301a9b40 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.function.AccumulatorState; public interface ArrayAggregationState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateConsumer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateConsumer.java index a125a54b05c4f..fa2a0282d9659 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateConsumer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateConsumer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface ArrayAggregationStateConsumer { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateFactory.java index c682fd4ea615f..4d47d54d65367 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AccumulatorStateFactory; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_IMPLEMENTATION_ERROR; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateSerializer.java index 7db1e361696be..4e24a647ecf08 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/ArrayAggregationStateSerializer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; public class ArrayAggregationStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java index 1c1fc307a410c..d7a891275d020 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.AbstractGroupCollectionAggregationState; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; public final class GroupArrayAggregationState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/LegacyArrayAggregationGroupState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/LegacyArrayAggregationGroupState.java index 773ccc3ce836f..1183a37d86592 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/LegacyArrayAggregationGroupState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/LegacyArrayAggregationGroupState.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.aggregation.arrayagg; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/SingleArrayAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/SingleArrayAggregationState.java index e0fff515b09ba..bafc8f6c5e42b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/SingleArrayAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/SingleArrayAggregationState.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java index 2d5b047c918d0..c7f352ffa06df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java @@ -14,6 +14,8 @@ package com.facebook.presto.operator.aggregation.builder; import com.facebook.presto.array.IntBigArray; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.GroupByHash; import com.facebook.presto.operator.GroupByIdBlock; @@ -28,10 +30,8 @@ import com.facebook.presto.operator.aggregation.GroupedAccumulator; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Step; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -48,8 +48,8 @@ import java.util.OptionalLong; import static com.facebook.presto.SystemSessionProperties.isDictionaryAggregationEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.GroupByHash.createGroupByHash; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java index 7c61a54e6f10d..80cf1dc5d9910 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation.builder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.WorkProcessor; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java index b368335940135..965bf6cb00777 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation.builder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.HashCollisionsCounter; import com.facebook.presto.operator.MergeHashSort; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.Spiller; import com.facebook.presto.spiller.SpillerFactory; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyAggregation.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyAggregation.java index 3aaa7aa46b9ae..d45cd899569be 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyAggregation.java @@ -13,7 +13,8 @@ */ package com.facebook.presto.operator.aggregation.differentialentropy; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -21,10 +22,9 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static java.util.Locale.ENGLISH; @AggregationFunction("differential_entropy") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyStateSerializer.java index d07ec5a5b4c77..72ac5294310e7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/differentialentropy/DifferentialEntropyStateSerializer.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation.differentialentropy; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class DifferentialEntropyStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedHistogramState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedHistogramState.java index 34913b2e3b45c..19f91dfd248d3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedHistogramState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedHistogramState.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.histogram; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; /** diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java index e442455518ca4..a573ebe490a73 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java @@ -15,18 +15,18 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import org.openjdk.jol.info.ClassLayout; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.aggregation.histogram.HashUtil.calculateMaxFill; import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextBucketId; import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextProbeLinear; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static it.unimi.dsi.fastutil.HashCommon.arraySize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/Histogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/Histogram.java index 8cd61e6931d6c..9360fdcc4bb10 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/Histogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/Histogram.java @@ -14,6 +14,12 @@ package com.facebook.presto.operator.aggregation.histogram; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -22,25 +28,19 @@ import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; import com.facebook.presto.operator.aggregation.GenericAccumulatorFactoryBinder; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.STATE; import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramState.java index 8fdc6db11db97..36012b178f7bc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.histogram; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateFactoryClass = HistogramStateFactory.class, stateSerializerClass = HistogramStateSerializer.class) public interface HistogramState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateFactory.java index 0ab24c71d5d28..472791abb9a1f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.histogram; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AccumulatorStateFactory; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation.LEGACY; import static com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation.NEW; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateSerializer.java index 5593806d3694f..5fe2bd3a526ad 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramStateSerializer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.histogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.operator.aggregation.histogram.Histogram.EXPECTED_SIZE_FOR_HASHING; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramValueReader.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramValueReader.java index 6426db271eb61..896299df125e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramValueReader.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/HistogramValueReader.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.histogram; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface HistogramValueReader { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/LegacyHistogramGroupState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/LegacyHistogramGroupState.java index fffb0e537f79d..d9a66baba27cc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/LegacyHistogramGroupState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/LegacyHistogramGroupState.java @@ -15,9 +15,9 @@ package com.facebook.presto.operator.aggregation.histogram; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; /** diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleHistogramState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleHistogramState.java index 42c6776723d72..aa4e2272ec939 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleHistogramState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleHistogramState.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator.aggregation.histogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; public class SingleHistogramState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java index 1a7ab5594406d..5dcdfc052696c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java @@ -15,15 +15,15 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import org.openjdk.jol.info.ClassLayout; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static it.unimi.dsi.fastutil.HashCommon.arraySize; import static it.unimi.dsi.fastutil.HashCommon.murmurHash3; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/TypedHistogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/TypedHistogram.java index 65917e7a95d9d..d2fd2b3ad9952 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/TypedHistogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/TypedHistogram.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.histogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; public interface TypedHistogram { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java index 3519f4ee1d110..4b89ba6f201ca 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java @@ -15,10 +15,10 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java index 588753247a466..a5f5a000bf7da 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxBy.java @@ -21,7 +21,12 @@ import com.facebook.presto.bytecode.Parameter; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -31,13 +36,8 @@ import com.facebook.presto.operator.aggregation.GenericAccumulatorFactoryBinder; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.SqlTypeBytecodeExpression; import com.google.common.collect.ImmutableList; @@ -60,6 +60,7 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.or; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -70,7 +71,6 @@ import static com.facebook.presto.operator.aggregation.minmaxby.TwoNullableValueStateMapping.getStateSerializer; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.BytecodeUtils.loadConstant; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxByNAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxByNAggregationFunction.java index 8329edc619ae0..5f5bb4ac89748 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxByNAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/AbstractMinMaxByNAggregationFunction.java @@ -14,6 +14,12 @@ package com.facebook.presto.operator.aggregation.minmaxby; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -26,18 +32,14 @@ import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.aggregation.TypedKeyValueHeap; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.INPUT_CHANNEL; @@ -47,8 +49,6 @@ import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionStateSerializer.java index da7432de6e111..1e0aa2d4391df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; class BlockAndBlockPositionStateSerializer extends KeyAndBlockPositionValueStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionValueState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionValueState.java index ff0afe13f8ec2..a52a49114f721 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionValueState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockAndBlockPositionValueState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface BlockAndBlockPositionValueState extends KeyAndBlockPositionValueState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockBooleanState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockBooleanState.java index 0bcdd9c461f6a..e8d867aef371c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockBooleanState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockBooleanState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface BlockBooleanState extends TwoNullableValueState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockDoubleState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockDoubleState.java index 3224d6dfb1280..dedebfa6050d5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockDoubleState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockDoubleState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface BlockDoubleState extends TwoNullableValueState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockLongState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockLongState.java index 52ddb3dd267c4..1c41f93e27e2b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockLongState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BlockLongState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface BlockLongState extends TwoNullableValueState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BooleanAndBlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BooleanAndBlockPositionStateSerializer.java index b753546940ade..24e1db00c82b3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BooleanAndBlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/BooleanAndBlockPositionStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; class BooleanAndBlockPositionStateSerializer extends KeyAndBlockPositionValueStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/DoubleAndBlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/DoubleAndBlockPositionStateSerializer.java index 378173b1da65f..e854e4faddf5e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/DoubleAndBlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/DoubleAndBlockPositionStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; class DoubleAndBlockPositionStateSerializer extends KeyAndBlockPositionValueStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueState.java index 35422804f7c5a..0ce5ba132891e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; /** * Used for MinMaxBy aggregation states where value's native container type is Block or Slice. diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueStateSerializer.java index ef6f9f04f0af1..73285294cce15 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/KeyAndBlockPositionValueStateSerializer.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.AbstractRowBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarRow; +import com.facebook.presto.common.block.AbstractRowBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/LongAndBlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/LongAndBlockPositionStateSerializer.java index 1f00dd8127e23..36afc30e49491 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/LongAndBlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/LongAndBlockPositionStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; class LongAndBlockPositionStateSerializer extends KeyAndBlockPositionValueStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/MinMaxByNStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/MinMaxByNStateSerializer.java index 4c09320ea9d59..24c4009c3f950 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/MinMaxByNStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/MinMaxByNStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.BlockComparator; import com.facebook.presto.operator.aggregation.TypedKeyValueHeap; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; public class MinMaxByNStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/SliceAndBlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/SliceAndBlockPositionStateSerializer.java index 5a2a63a5a0907..3a454d34a1921 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/SliceAndBlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/SliceAndBlockPositionStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; class SliceAndBlockPositionStateSerializer extends KeyAndBlockPositionValueStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/TwoNullableValueStateMapping.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/TwoNullableValueStateMapping.java index 3cc061402bd0a..201578527d032 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/TwoNullableValueStateMapping.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/minmaxby/TwoNullableValueStateMapping.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java index 25ed471e47dfc..20587e5915aef 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.AbstractGroupCollectionAggregationState; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; public final class GroupedMultimapAggregationState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/LegacyGroupedMultimapAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/LegacyGroupedMultimapAggregationState.java index 4868780e149c3..6cd19e63803ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/LegacyGroupedMultimapAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/LegacyGroupedMultimapAggregationState.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.aggregation.multimapagg; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import static com.facebook.presto.type.TypeUtils.expectedValueSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationFunction.java index bc5b440c7f3a0..516f7fbe29fb5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationFunction.java @@ -15,6 +15,13 @@ import com.facebook.presto.array.ObjectBigArray; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlAggregationFunction; @@ -24,18 +31,12 @@ import com.facebook.presto.operator.aggregation.GenericAccumulatorFactoryBinder; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INDEX; import static com.facebook.presto.operator.aggregation.AggregationMetadata.ParameterMetadata.ParameterType.BLOCK_INPUT_CHANNEL; @@ -44,7 +45,6 @@ import static com.facebook.presto.operator.aggregation.AggregationUtils.generateAggregationName; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.type.TypeUtils.expectedValueSize; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationState.java index 39dc38567e698..0dda5c0faf275 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationState.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateConsumer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateConsumer.java index 4b45c26c721e2..cec6ccea0fc32 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateConsumer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateConsumer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; public interface MultimapAggregationStateConsumer { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateFactory.java index acb3e73feb4ae..7733f05f2bfa9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.AccumulatorStateFactory; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_IMPLEMENTATION_ERROR; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateSerializer.java index 52fb65375e5dc..cfb0d9c9b8c9f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/MultimapAggregationStateSerializer.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarRow; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; import static com.facebook.presto.operator.aggregation.multimapagg.GroupedMultimapAggregationState.KEY_CHANNEL; import static com.facebook.presto.operator.aggregation.multimapagg.GroupedMultimapAggregationState.VALUE_CHANNEL; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; import static java.util.Objects.requireNonNull; public class MultimapAggregationStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/SingleMultimapAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/SingleMultimapAggregationState.java index b2188de14d883..38893703afde7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/SingleMultimapAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/SingleMultimapAggregationState.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import org.openjdk.jol.info.ClassLayout; import static com.facebook.presto.type.TypeUtils.expectedValueSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionState.java index 0ae41e708cbf5..c82440a339496 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionState.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = BlockPositionStateSerializer.class) public interface BlockPositionState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionStateSerializer.java index a096b09cc19d4..8161586200fe8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockPositionStateSerializer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; public class BlockPositionStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockState.java index ed785ba8863de..d7d2ee476ff5b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockState.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = BlockStateSerializer.class) public interface BlockState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockStateSerializer.java index 0573e016fcaad..3f7d4f92bbad8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/BlockStateSerializer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; public class BlockStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileArrayStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileArrayStateSerializer.java index e83ee39687c9f..c9eb8ec963e77 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileArrayStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileArrayStateSerializer.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.aggregation.state; import com.facebook.airlift.stats.QuantileDigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; @@ -26,7 +26,7 @@ import java.util.List; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static io.airlift.slice.SizeOf.SIZE_OF_DOUBLE; import static io.airlift.slice.SizeOf.SIZE_OF_INT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileStateSerializer.java index 90f91b56c2c17..48d44ef63d72f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DigestAndPercentileStateSerializer.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.aggregation.state; import com.facebook.airlift.stats.QuantileDigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static io.airlift.slice.SizeOf.SIZE_OF_DOUBLE; import static io.airlift.slice.SizeOf.SIZE_OF_INT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DoubleHistogramStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DoubleHistogramStateSerializer.java index 0bbcbf790bc94..1c5bc3fef3234 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DoubleHistogramStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/DoubleHistogramStateSerializer.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation.state; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.DoubleHistogramAggregation; import com.facebook.presto.operator.aggregation.NumericHistogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class DoubleHistogramStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/HyperLogLogStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/HyperLogLogStateSerializer.java index 4c94c90f22ee1..d82d32954d57d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/HyperLogLogStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/HyperLogLogStateSerializer.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.aggregation.state; import com.facebook.airlift.stats.cardinality.HyperLogLog; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class HyperLogLogStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairStateSerializer.java index 23f7b02daa27a..e4bd102feb68b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.state; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.KeyValuePairs; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; public class KeyValuePairStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsState.java index 0ff4cb98db8e1..0469ca46b6f3d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.KeyValuePairs; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateFactoryClass = KeyValuePairsStateFactory.class, stateSerializerClass = KeyValuePairStateSerializer.class) public interface KeyValuePairsState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsStateFactory.java index 79670cc5da9da..77e72b0b1edab 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/KeyValuePairsStateFactory.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.state; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.KeyValuePairs; import com.facebook.presto.spi.function.AccumulatorStateFactory; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateFactory.java index 7add618cf40a9..4af4553829ec4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateFactory.java @@ -18,7 +18,7 @@ import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; public class LongDecimalWithOverflowAndLongStateFactory diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateSerializer.java index 6b37c808b6f9f..5edb84cd44d5b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowAndLongStateSerializer.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class LongDecimalWithOverflowAndLongStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateFactory.java index 29eed9ae5828f..e876e27ee8a17 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateFactory.java @@ -19,7 +19,7 @@ import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.UNSCALED_DECIMAL_128_SLICE_LENGTH; import static java.util.Objects.requireNonNull; public class LongDecimalWithOverflowStateFactory diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateSerializer.java index f7122646f0dea..a782286b2d4ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/LongDecimalWithOverflowStateSerializer.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class LongDecimalWithOverflowStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/MinMaxNStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/MinMaxNStateSerializer.java index 109953afe39d6..e139d59c910a9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/MinMaxNStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/MinMaxNStateSerializer.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation.state; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.BlockComparator; import com.facebook.presto.operator.aggregation.TypedHeap; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.lang.Math.toIntExact; public class MinMaxNStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanState.java index 4ff325bdb4431..a41b6e23e133e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = NullableBooleanStateSerializer.class) public interface NullableBooleanState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanStateSerializer.java index c0de283ce8fd0..b82151de57e27 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableBooleanStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class NullableBooleanStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleState.java index 3ddf1cc2d29cd..e6afd9cc5652b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = NullableDoubleStateSerializer.class) public interface NullableDoubleState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleStateSerializer.java index 9879b392330a3..1047ab382abae 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableDoubleStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class NullableDoubleStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongState.java index f2735f564d00d..6d9686789676c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = NullableLongStateSerializer.class) public interface NullableLongState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongStateSerializer.java index 106c51513d4d7..08f35fc4882b4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/NullableLongStateSerializer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class NullableLongStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/PrecisionRecallStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/PrecisionRecallStateSerializer.java index 9c049e07ae291..20644d2e77058 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/PrecisionRecallStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/PrecisionRecallStateSerializer.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation.state; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.fixedhistogram.FixedDoubleHistogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.SizeOf; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkArgument; public class PrecisionRecallStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/SliceState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/SliceState.java index 6e71b74ed0de8..b9a530fa22df8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/SliceState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/SliceState.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; public interface SliceState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StateCompiler.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StateCompiler.java index 708027f9a1f5c..2477784795efe 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StateCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StateCompiler.java @@ -30,14 +30,14 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.GroupedAccumulator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateMetadata; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.SqlTypeBytecodeExpression; import com.google.common.collect.ImmutableList; @@ -75,12 +75,12 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.equal; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.getStatic; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.newInstance; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StatisticalDigestStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StatisticalDigestStateSerializer.java index cb263bdfa0c97..adb942a7088d9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StatisticalDigestStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/StatisticalDigestStateSerializer.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class StatisticalDigestStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanState.java index 6b97da578548d..624f63663b72b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateMetadata; -import com.facebook.presto.spi.type.Type; @AccumulatorStateMetadata(stateSerializerClass = TriStateBooleanStateSerializer.class) public interface TriStateBooleanState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanStateSerializer.java index 8efe18cc62d7a..5140257159bcd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/state/TriStateBooleanStateSerializer.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation.state; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.FALSE_VALUE; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.NULL_VALUE; import static com.facebook.presto.operator.aggregation.state.TriStateBooleanState.TRUE_VALUE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; public class TriStateBooleanStateSerializer implements AccumulatorStateSerializer diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionImplementationDependency.java index a6c8332b163e6..615093d81be47 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionImplementationDependency.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.InvocationConvention; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java index 7e344b42db7ce..c53651db9f1f0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/FunctionsParserHelper.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.annotations; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.Constraint; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/ImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/ImplementationDependency.java index ddf9a80cd28ca..86a987b0a7c1c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/ImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/ImplementationDependency.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.Convention; @@ -20,9 +23,6 @@ import com.facebook.presto.spi.function.InvocationConvention; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.type.LiteralParameter; import java.lang.annotation.Annotation; @@ -35,8 +35,8 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.annotations.FunctionsParserHelper.containsImplementationDependencyAnnotation; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/LiteralImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/LiteralImplementationDependency.java index cb2298301518f..0d87bd7223b7a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/LiteralImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/LiteralImplementationDependency.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.TypeManager; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java index 3d4531d8ddcf2..2d816e15d1e87 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/OperatorImplementationDependency.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.annotations; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.InvocationConvention; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/ScalarImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/ScalarImplementationDependency.java index 8ec12e632ef4c..8ef1d950cacca 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/ScalarImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/ScalarImplementationDependency.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.InvocationConvention; -import com.facebook.presto.spi.type.TypeManager; import java.lang.invoke.MethodHandle; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/annotations/TypeImplementationDependency.java b/presto-main/src/main/java/com/facebook/presto/operator/annotations/TypeImplementationDependency.java index 5abad3652c244..3f1b5e0d85b36 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/annotations/TypeImplementationDependency.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/annotations/TypeImplementationDependency.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.annotations; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import java.util.Objects; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.SignatureBinder.applyBoundVariables; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public final class TypeImplementationDependency diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchange.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchange.java index 78dfab05c55a5..ada44d51ebbed 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchange.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchange.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.exchange; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.BucketPartitionFunction; import com.facebook.presto.operator.HashGenerator; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.connector.ConnectorBucketNodeMap; import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.PartitioningHandle; import com.facebook.presto.sql.planner.PartitioningProviderManager; import com.facebook.presto.sql.planner.SystemPartitioningHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java index 9a4ce0966e9e4..6e7c56218523e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; import com.facebook.presto.operator.OperatorContext; @@ -21,9 +23,7 @@ import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java index 6d11d4dcea428..f0b69bfa4e95f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import java.util.function.Function; import java.util.stream.IntStream; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java index f9c8ad2de80b9..dae0c210a9f10 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java index b255c5e5ae1e1..cef639ca810c4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.facebook.presto.sql.relational.Expressions; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java index dcf7a430a8a10..7703b26234043 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/FieldSetFilteringRecordSet.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.index; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java index 9d851ed5a7ab0..a0dd8bbc6d05f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverFactory; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java index c848257f7780b..d9915549545f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; import com.facebook.presto.metadata.Split; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSourceFactory.java index 706aaafa6ad2d..55c3f5a2fe1f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.LookupSourceFactory; import com.facebook.presto.operator.LookupSourceProvider; import com.facebook.presto.operator.OuterPositionIterator; @@ -20,7 +21,6 @@ import com.facebook.presto.operator.StaticLookupSourceProvider; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java index e235bf64d319c..d684e64d314eb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator.index; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.LookupSource; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.index.UnloadedIndexKeyRecordSet.UnloadedIndexKeyRecordCursor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java index f9948cf8d22ac..92cb56f4517d0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java b/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java index 4f9b215465113..1ed056e476b39 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.Driver; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java index e0c8dda474a35..427c1fa7147bc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.project.InputChannels; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java index 076052b459cee..f4ee53c7c75ca 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator.index; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByHash; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java index 4ef693eeb9d05..ec74544222530 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; public class ConstantPageProjection implements PageProjection diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java index 90262315c0cb0..a1fd19522348f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.function.SqlFunctionProperties; public interface CursorProcessor { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java index f9787bfdb9515..dbe86890b1411 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java index 84c28680ccbfa..0ce167755192f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java index 4f25d68dbd7a9..c296a07d1d627 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java b/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java index 5b8864d2b6a0c..73a432f2ef656 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.google.common.primitives.Ints; import java.util.Arrays; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java index 6049b189b2c8b..5ae1b8bc63440 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java b/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java index 306247b34a83a..aaa1dd50ba3c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; @@ -30,7 +30,7 @@ import java.util.Optional; import java.util.Queue; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java index 200cee84e1182..5b69f2718ff30 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.function.SqlFunctionProperties; public interface PageFilter { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java index 5a29afb5c68b4..007c606af7a15 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java @@ -14,17 +14,17 @@ package com.facebook.presto.operator.project; import com.facebook.presto.array.ReferenceCountMap; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.WorkProcessor.ProcessState; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.sql.gen.ExpressionProfiler; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SizeOf; @@ -41,11 +41,11 @@ import java.util.function.Function; import java.util.stream.IntStream; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; import static com.facebook.presto.operator.WorkProcessor.ProcessState.finished; import static com.facebook.presto.operator.WorkProcessor.ProcessState.ofResult; import static com.facebook.presto.operator.WorkProcessor.ProcessState.yield; import static com.facebook.presto.operator.project.SelectedPositions.positionsRange; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java index 57e2220bcb9d5..5a64605adfb58 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java index ed0623242cc03..5724567e348e9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import java.util.Arrays; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java index e28248e224f03..9cc0c794f0beb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/AbstractBlockEncodingBuffer.java @@ -27,19 +27,19 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.Int128ArrayBlock; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.ShortArrayBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.Int128ArrayBlock; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.ShortArrayBlock; +import com.facebook.presto.common.block.VariableWidthBlock; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java index eaa33995e297b..296b3b7be44f3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ArrayBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.ColumnarArray; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.ColumnarArray; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ByteArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ByteArrayBlockEncodingBuffer.java index 1cc2971bd95c1..c54fc94283033 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ByteArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ByteArrayBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/DecodedBlockNode.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/DecodedBlockNode.java index 71e36dc99d08e..2f1d4942c466a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/DecodedBlockNode.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/DecodedBlockNode.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; import org.openjdk.jol.info.ClassLayout; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/Int128ArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/Int128ArrayBlockEncodingBuffer.java index d9b6017cc3ddb..bddbc7cec6401 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/Int128ArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/Int128ArrayBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/IntArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/IntArrayBlockEncodingBuffer.java index 40b8b5ac7ab62..03e0852c1fbc4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/IntArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/IntArrayBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/LongArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/LongArrayBlockEncodingBuffer.java index ce42d1c5ec130..cd7d807a726eb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/LongArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/LongArrayBlockEncodingBuffer.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java index 8326abddc4db9..b9d082bee08e5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/MapBlockEncodingBuffer.java @@ -27,9 +27,9 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.type.TypeSerde; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.type.TypeSerde; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java index e1ee9d5fd0cd2..ffecc6e3bc62e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java @@ -13,6 +13,20 @@ */ package com.facebook.presto.operator.repartition; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockFlattener; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.MapBlock; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.buffer.OutputBuffer; import com.facebook.presto.execution.buffer.PagesSerdeFactory; @@ -25,24 +39,10 @@ import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SimpleArrayAllocator; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockFlattener; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.MapBlock; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.ConstantExpression; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; @@ -66,8 +66,8 @@ import static com.facebook.presto.array.Arrays.ExpansionOption.INITIALIZE; import static com.facebook.presto.array.Arrays.ExpansionOption.PRESERVE; import static com.facebook.presto.array.Arrays.ensureCapacity; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.operator.repartition.AbstractBlockEncodingBuffer.createBlockEncodingBuffers; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java index 9d0ed5fac7bb3..c6674d11a91f5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.operator.repartition; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.OutputBuffer; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.memory.context.LocalMemoryContext; @@ -24,13 +27,10 @@ import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.ConstantExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; @@ -41,8 +41,8 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.Function; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.execution.buffer.PageSplitterUtil.splitPage; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.Math.max; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java index ec30aa49a49c0..d21857557c2d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/RowBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.ColumnarRow; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.ColumnarRow; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ShortArrayBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ShortArrayBlockEncodingBuffer.java index d0e08ab8cbcfe..0e67be16ac199 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/ShortArrayBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/ShortArrayBlockEncodingBuffer.java @@ -27,8 +27,8 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SliceOutput; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/VariableWidthBlockEncodingBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/VariableWidthBlockEncodingBuffer.java index dd25ea400266a..9a5931c2c7f4c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/VariableWidthBlockEncodingBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/VariableWidthBlockEncodingBuffer.java @@ -27,10 +27,10 @@ */ package com.facebook.presto.operator.repartition; -import com.facebook.presto.spi.block.AbstractVariableWidthBlock; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.VariableWidthBlock; +import com.facebook.presto.common.block.AbstractVariableWidthBlock; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.VariableWidthBlock; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java index d0e9606e7ed59..7a3c1f4feda67 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/AbstractGreatestLeast.java @@ -24,6 +24,9 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -31,9 +34,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CallSiteBinder; import com.google.common.collect.ImmutableList; @@ -48,12 +48,12 @@ import static com.facebook.presto.bytecode.Access.a; import static com.facebook.presto.bytecode.Parameter.arg; import static com.facebook.presto.bytecode.ParameterizedType.type; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.BytecodeUtils.invoke; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java index 636dbd1139274..2790a9d8a843e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ApplyFunction.java @@ -14,26 +14,26 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.lambda.UnaryFunctionInterface; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_BOXED_TYPE; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.primitives.Primitives.wrap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAllMatchFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAllMatchFunction.java index 4f5be07409038..4bf8974a5f885 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAllMatchFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAllMatchFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static java.lang.Boolean.FALSE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAnyMatchFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAnyMatchFunction.java index 43590dbee9154..029c0caf9a325 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAnyMatchFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayAnyMatchFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static java.lang.Boolean.TRUE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCardinalityFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCardinalityFunction.java index 456c2288f980a..58baf6c0d475a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCardinalityFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCardinalityFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; @Description("Returns the cardinality (length) of the array") @ScalarFunction("cardinality") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCombinationsFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCombinationsFunction.java index 7b205e2328c96..bc2d442340c22 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCombinationsFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayCombinationsFunction.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.PageBuilderStatus; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java index 6a0565ff92b5a..7d5a4d001c598 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java @@ -14,32 +14,32 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.VarArgsToArrayAdapterGenerator; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.VarArgsToArrayAdapterGenerator.generateVarArgsToArrayAdapter; import static com.facebook.presto.util.Reflection.methodHandle; import static java.util.Collections.nCopies; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatUtils.java index 84e59abcb7da3..d429d65caea44 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatUtils.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; public final class ArrayConcatUtils diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java index c51eb7fdb7586..b43cc98aea076 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConstructor.java @@ -22,18 +22,18 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CallSiteBinder; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -54,13 +54,13 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantNull; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.equal; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_BOXED_TYPE; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.util.CompilerUtils.defineClass; import static com.facebook.presto.util.CompilerUtils.makeClassName; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java index 64a5eafc66163..346de75485b6b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayContains.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java index 6eda809cc9a21..80c4ede40ea85 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFromOperator.java @@ -13,7 +13,9 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.Convention; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFunction.java index df626ca5c1821..89f2d7645584c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayDistinctFunction.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import it.unimi.dsi.fastutil.longs.LongSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @ScalarFunction("array_distinct") @Description("Remove duplicate values from the given array") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayElementAtFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayElementAtFunction.java index 55274614e45cf..19ed2eab86136 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayElementAtFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayElementAtFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java index 3db0f30d2df15..45518b9918536 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayEqualOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.EQUAL; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; @ScalarOperator(EQUAL) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayExceptFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayExceptFunction.java index 05c2580824495..919364a0e0cd9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayExceptFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayExceptFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; @ScalarFunction("array_except") @Description("Returns an array of elements that are in the first array but not the second, without duplicates.") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFilterFunction.java index dae21f4c3b066..480f9a5d1fab6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFilterFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static java.lang.Boolean.TRUE; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java index 28da13ee1a6ea..398bb7e11d240 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFlattenFunction.java @@ -13,29 +13,29 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFunctions.java index d9eed27f4d200..bc860ad3ca890 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; import static com.facebook.presto.type.UnknownType.UNKNOWN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java index 1f137cf0a7694..31d56493a74f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java index 02bae99026ac5..c60876c3311e9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayGreaterThanOrEqualOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; -import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java index 4b744f9d6857c..650eacec3c98a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayHashCodeOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.NULL_HASH_CODE; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java index cde5415920457..5bb1b3f2fb6db 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIndeterminateOperator.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; @ScalarOperator(INDETERMINATE) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIntersectFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIntersectFunction.java index 3ffb86c80a044..04da353f3f96b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIntersectFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayIntersectFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; @ScalarFunction("array_intersect") @Description("Intersects elements of the two given arrays") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java index e1f0d64ba3c46..eb1aa913dda10 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java @@ -14,7 +14,14 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -23,16 +30,9 @@ import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.UnknownType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -44,6 +44,8 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; @@ -54,8 +56,6 @@ import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java index 5b441cf1c73d7..b28beb55bb43c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java index 72a741657284f..d420e46225efa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayLessThanOrEqualOperator.java @@ -13,21 +13,21 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; -import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java index 189d7e5c5a7bd..94debbaa2ac06 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMaxFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java index 4e1dd76b693df..b605a0bfb731d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinMaxUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinMaxUtils.java index dfdd33885fe7f..38f6a273c0270 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinMaxUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayMinMaxUtils.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNgramsFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNgramsFunction.java index ed0df57705c6a..7078be892b857 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNgramsFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNgramsFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; @@ -22,8 +22,8 @@ import java.util.Optional; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; import static com.facebook.presto.util.Failures.checkCondition; import static java.lang.Math.min; import static java.lang.StrictMath.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNoneMatchFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNoneMatchFunction.java index 7be3f505ecf97..b3bcacd103a30 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNoneMatchFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNoneMatchFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; @Description("Returns true if all elements of the array don't match the given predicate") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java index fb97be1571aa3..db57635986c55 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayNotEqualOperator.java @@ -13,14 +13,14 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java index 76dcec40b98bd..10835b383bf43 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayPositionFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java index 9a86dc11e790c..81bb76458976d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReduceFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; import com.facebook.presto.sql.gen.lambda.UnaryFunctionInterface; import com.google.common.collect.ImmutableList; @@ -30,6 +30,8 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; @@ -37,8 +39,6 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_BOXED_TYPE; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Reflection.methodHandle; public final class ArrayReduceFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java index dfb0478bf4db1..cf062339a09e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; @@ -30,8 +30,8 @@ import java.util.List; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; @ScalarFunction("array_remove") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java index 091f1a031c04c..5f42e93f50218 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; @ScalarFunction("reverse") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java index 6e5d2bc39d6d1..55a0b8a7678ce 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.concurrent.ThreadLocalRandom; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySliceFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySliceFunction.java index e584602b63568..8c9d91587f076 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySliceFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySliceFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java index 343b0170739a4..0856638c50612 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.lambda.LambdaFunctionInterface; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java index 5b94447a115ac..eda507692b5a7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortFunction.java @@ -13,15 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.NotSupportedException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import com.google.common.primitives.Ints; import java.lang.invoke.MethodHandle; @@ -70,8 +71,8 @@ else if (block.isNull(p2)) { //TODO: This could be quite slow, it should use parametric equals return type.compareTo(block, p1, block, p2); } - catch (PrestoException e) { - if (e.getErrorCode() == NOT_SUPPORTED.toErrorCode()) { + catch (PrestoException | NotSupportedException e) { + if (e instanceof NotSupportedException || ((PrestoException) e).getErrorCode() == NOT_SUPPORTED.toErrorCode()) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Array contains elements not supported for comparison", e); } throw e; @@ -89,8 +90,8 @@ public int compare(Integer p1, Integer p2) //TODO: This could be quite slow, it should use parametric equals return type.compareTo(block, p1, block, p2); } - catch (PrestoException e) { - if (e.getErrorCode() == NOT_SUPPORTED.toErrorCode()) { + catch (PrestoException | NotSupportedException e) { + if (e instanceof NotSupportedException || ((PrestoException) e).getErrorCode() == NOT_SUPPORTED.toErrorCode()) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Array contains elements not supported for comparison", e); } throw e; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java index ecb947325210f..d3fcc03adc4d1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySubscriptOperator.java @@ -14,24 +14,24 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java index 8d4f79c6268bc..6aee3c9b07db5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToArrayCast.java @@ -19,16 +19,16 @@ import com.facebook.presto.bytecode.Parameter; import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.ArrayGeneratorUtils; import com.facebook.presto.sql.gen.ArrayMapBytecodeExpression; import com.facebook.presto.sql.gen.CachedInstanceBinder; @@ -46,10 +46,10 @@ import static com.facebook.presto.bytecode.ParameterizedType.type; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantBoolean; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.CompilerUtils.defineClass; import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java index b1d6e97a5ccdc..21cdd1b2fb8f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToElementConcatFunction.java @@ -13,27 +13,27 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public class ArrayToElementConcatFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java index f87a39c18c5e7..7f587b797a972 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayToJsonCast.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.util.JsonUtil.JsonGeneratorWriter; import com.fasterxml.jackson.core.JsonGenerator; import com.google.common.collect.ImmutableList; @@ -33,12 +33,12 @@ import java.io.IOException; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.operator.scalar.JsonOperators.JSON_FACTORY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.canCastToJson; import static com.facebook.presto.util.JsonUtil.createJsonGenerator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java index 6615e01e8829e..cd5460230db06 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java @@ -22,19 +22,19 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.lambda.UnaryFunctionInterface; import com.google.common.collect.ImmutableList; @@ -57,12 +57,12 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.newInstance; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.subtract; import static com.facebook.presto.bytecode.instruction.VariableInstruction.incrementVariable; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayUnionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayUnionFunction.java index 5f3cbfbb847f8..fbf87d5b92e1b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayUnionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayUnionFunction.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import it.unimi.dsi.fastutil.longs.LongSet; import java.util.concurrent.atomic.AtomicBoolean; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @ScalarFunction("array_union") @Description("Union elements of the two given arrays") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java index 8cc3a2c840562..48e205384aadd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import it.unimi.dsi.fastutil.ints.AbstractIntComparator; import it.unimi.dsi.fastutil.ints.IntArrays; import it.unimi.dsi.fastutil.ints.IntComparator; @@ -31,8 +31,8 @@ import java.util.Arrays; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; @ScalarFunction("arrays_overlap") @Description("Returns true if arrays have common elements") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BitwiseFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BitwiseFunctions.java index a1ddf9757498a..24e25621cdb59 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BitwiseFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BitwiseFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BlockToBooleanFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BlockToBooleanFunction.java index 8bf296cbd753d..a605b7a1378bc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BlockToBooleanFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BlockToBooleanFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import com.facebook.presto.sql.gen.lambda.LambdaFunctionInterface; @FunctionalInterface diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BuiltInScalarFunctionImplementation.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BuiltInScalarFunctionImplementation.java index f143ca023b193..9f5c1885bf48e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/BuiltInScalarFunctionImplementation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/BuiltInScalarFunctionImplementation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.function.ScalarFunctionImplementation; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java index 058d77642e5e8..621693ea2736e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CastFromUnknownOperator.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public final class CastFromUnknownOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java index 49522c957b744..0ecf2917fd5cb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CharacterStringCasts.java @@ -26,9 +26,9 @@ import java.util.ArrayList; import java.util.List; -import static com.facebook.presto.spi.type.Chars.padSpaces; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; +import static com.facebook.presto.common.type.Chars.padSpaces; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.slice.SliceUtf8.getCodePointAt; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ColorFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ColorFunctions.java index 6bf491ce6a8c1..c0b7a6748fec4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ColorFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ColorFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.ColorType; import com.facebook.presto.type.Constraint; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CombineHashFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CombineHashFunction.java index 5aabde40e990a..1c8d09b5648f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/CombineHashFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/CombineHashFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java index f0b8ed09fce6a..367a0ed684a5e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ConcatFunction.java @@ -23,6 +23,8 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; @@ -51,13 +51,13 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.add; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.invokeStatic; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.util.CompilerUtils.defineClass; import static com.facebook.presto.util.CompilerUtils.makeClassName; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/DataSizeFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/DataSizeFunctions.java index f3252d0f296be..ece24c3e257d7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/DataSizeFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/DataSizeFunctions.java @@ -23,9 +23,9 @@ import java.math.BigDecimal; import java.math.BigInteger; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; import static java.lang.Character.isDigit; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/DateTimeFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/DateTimeFunctions.java index caf187a977762..f1bbe4d5f38ff 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/DateTimeFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/DateTimeFunctions.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.concurrent.ThreadLocalCache; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimeZoneKey; import io.airlift.slice.Slice; import io.airlift.units.Duration; import org.joda.time.DateTime; @@ -38,15 +38,15 @@ import java.util.Locale; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.DateTimeEncoding.updateMillisUtc; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; import static com.facebook.presto.operator.scalar.QuarterOfYearDateTimeField.QUARTER_OF_YEAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; -import static com.facebook.presto.spi.type.DateTimeEncoding.updateMillisUtc; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; import static com.facebook.presto.type.DateTimeOperators.modulo24Hour; import static com.facebook.presto.util.DateTimeZoneIndex.extractZoneOffsetMinutes; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java index 23b43b01e97de..9f35be09ecc82 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ElementToArrayConcatFunction.java @@ -13,27 +13,27 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public class ElementToArrayConcatFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/EmptyMapConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/EmptyMapConstructor.java index 23aef9a61984d..8723b2f28ce13 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/EmptyMapConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/EmptyMapConstructor.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; @Description("Creates an empty map") @ScalarFunction("map") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/FailureFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/FailureFunction.java index 42b459f535b18..be8c307353bb6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/FailureFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/FailureFunction.java @@ -15,12 +15,12 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/HmacFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/HmacFunctions.java index dd6ea1657230f..dffefa72a00e5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/HmacFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/HmacFunctions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.hash.HashCode; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/HyperLogLogFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/HyperLogLogFunctions.java index c3ee8d4b24eba..69ac6fd9c23d6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/HyperLogLogFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/HyperLogLogFunctions.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.stats.cardinality.HyperLogLog; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.operator.aggregation.ApproximateSetAggregation.DEFAULT_STANDARD_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java index e6b420c7fea01..c76868ee3a333 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IdentityCast.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; public class IdentityCast diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java index 0f58fe65192e7..d30ef6c824559 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/InvokeFunction.java @@ -15,24 +15,24 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.lambda.LambdaFunctionInterface; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.primitives.Primitives.wrap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IpPrefixFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IpPrefixFunctions.java index b98d7590c64bd..e40bb3c6e0bd3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/IpPrefixFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/IpPrefixFunctions.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java index bbedd26a14eb4..c0f551099672c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpCasts.java @@ -26,8 +26,8 @@ import io.airlift.joni.Syntax; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.Chars.padSpaces; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Chars.padSpaces; public final class JoniRegexpCasts { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpFunctions.java index 8ced1746b3da0..3eca68f5a377e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpFunctions.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.Constraint; import com.facebook.presto.type.JoniRegexpType; import io.airlift.joni.Matcher; @@ -36,8 +36,8 @@ import java.nio.charset.StandardCharsets; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.Math.toIntExact; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java index eeb4e8c6d9a2c..b1a3defa6e8db 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; @@ -32,7 +32,7 @@ import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; @ScalarFunction("regexp_replace") @Description("replaces substrings matching a regular expression using a lambda function") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java index fa8d6899602b8..969ea2f6d3e8d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonFunctions.java @@ -14,18 +14,18 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.JsonPathType; import com.facebook.presto.type.LiteralParameter; import com.fasterxml.jackson.core.JsonFactory; @@ -43,8 +43,8 @@ import java.util.LinkedList; import java.util.List; +import static com.facebook.presto.common.type.Chars.padSpaces; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Chars.padSpaces; import static com.facebook.presto.util.JsonUtil.createJsonParser; import static com.facebook.presto.util.JsonUtil.truncateIfNecessaryForErrorMessage; import static com.fasterxml.jackson.core.JsonFactory.Feature.CANONICALIZE_FIELD_NAMES; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java index f99695c292ef1..576aefaafdb1d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonOperators.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.util.JsonCastException; @@ -39,19 +39,19 @@ import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DATE; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.JSON; +import static com.facebook.presto.common.type.StandardTypes.REAL; +import static com.facebook.presto.common.type.StandardTypes.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; +import static com.facebook.presto.common.type.StandardTypes.TINYINT; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.JSON; -import static com.facebook.presto.spi.type.StandardTypes.REAL; -import static com.facebook.presto.spi.type.StandardTypes.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; -import static com.facebook.presto.spi.type.StandardTypes.TINYINT; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.facebook.presto.util.DateTimeUtils.printDate; import static com.facebook.presto.util.DateTimeUtils.printTimestampWithoutTimeZone; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java index fa81f6f72072d..5b698afd850b2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToArrayCast.java @@ -14,21 +14,21 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.JsonToArrayCast.JSON_TO_ARRAY; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; public final class JsonStringToArrayCast extends SqlScalarFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java index 28741d1497c47..f3987f3e956cd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToMapCast.java @@ -14,22 +14,22 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.JsonToMapCast.JSON_TO_MAP; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; public final class JsonStringToMapCast extends SqlScalarFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java index eff49d1855e85..1fe622fb2e835 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonStringToRowCast.java @@ -14,21 +14,21 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.JsonToRowCast.JSON_TO_ROW; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.withVariadicBound; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; public final class JsonStringToRowCast extends SqlScalarFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java index b551a6f764544..fb6ba48edd504 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToArrayCast.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.util.JsonCastException; import com.facebook.presto.util.JsonUtil.BlockBuilderAppender; import com.fasterxml.jackson.core.JsonParser; @@ -36,11 +36,11 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.JSON_FACTORY; import static com.facebook.presto.util.JsonUtil.canCastFromJson; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java index 4fb3c5055a579..cba64bc458691 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToMapCast.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.util.JsonCastException; import com.facebook.presto.util.JsonUtil.BlockBuilderAppender; import com.fasterxml.jackson.core.JsonParser; @@ -36,12 +36,12 @@ import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.BlockBuilderAppender.createBlockBuilderAppender; import static com.facebook.presto.util.JsonUtil.HashTable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java index 3e0bb2297430a..f2478c5e2f5e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JsonToRowCast.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SingleRowBlockWriter; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SingleRowBlockWriter; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.util.JsonCastException; import com.facebook.presto.util.JsonUtil.BlockBuilderAppender; import com.fasterxml.jackson.core.JsonParser; @@ -39,11 +39,11 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.BlockBuilderAppender.createBlockBuilderAppender; import static com.facebook.presto.util.JsonUtil.JSON_FACTORY; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapCardinalityFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapCardinalityFunction.java index 6efba05134e7c..bbe0b9d4c4e2a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapCardinalityFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapCardinalityFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; @ScalarFunction("cardinality") @Description("Returns the cardinality (the number of key-value pairs) of the map") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java index b04f40468d784..3ba1794139521 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java @@ -14,36 +14,36 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.gen.VarArgsToArrayAdapterGenerator.MethodHandleAndConstructor; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.VarArgsToArrayAdapterGenerator.generateVarArgsToArrayAdapter; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.Math.min; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java index d6ed5810ab202..41c2d9e962b0b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java @@ -14,32 +14,34 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DuplicateMapKeyException; +import com.facebook.presto.common.block.MapBlockBuilder; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DuplicateMapKeyException; -import com.facebook.presto.spi.block.MapBlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.Optional; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; @@ -47,8 +49,6 @@ import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java index 101228c3dadda..96c9622c1407a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapDistinctFromOperator.java @@ -13,7 +13,10 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.Convention; @@ -22,9 +25,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java index 0b41522837416..537f57fd9275f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java @@ -14,31 +14,31 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SingleMapBlock; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java index fb4a8dbdbe44d..9345b394b8961 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java index 68cdb952225fc..87f3d944170ce 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEqualOperator.java @@ -13,20 +13,20 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; @ScalarOperator(EQUAL) public final class MapEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java index 814c8531e8827..b05510c68767c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java @@ -23,21 +23,21 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.SqlTypeBytecodeExpression; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; @@ -62,12 +62,12 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.notEqual; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.subtract; import static com.facebook.presto.bytecode.instruction.VariableInstruction.incrementVariable; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java index 14707ec6b16b2..32e800d8369bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java index 3e1da18560c2e..bc8606e031223 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java @@ -13,11 +13,11 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SingleMapBlock; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SingleMapBlock; +import com.facebook.presto.common.type.Type; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; public final class MapGenericEquality diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java index f31e7fc600836..0f36a2fb7c521 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapHashCodeOperator.java @@ -14,22 +14,22 @@ */ import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.TypeUtils.hashPosition; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java index f482a47b5c33b..0145385eef0b0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapIndeterminateOperator.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.util.Failures.internalError; @ScalarOperator(INDETERMINATE) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapKeys.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapKeys.java index c67102c95975a..e76253ceeb843 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapKeys.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapKeys.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; @ScalarFunction("map_keys") @Description("Returns the keys of the given map(K,V) as an array") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java index 6075ac3643bfa..8a79d75cc4629 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapNotEqualOperator.java @@ -13,14 +13,14 @@ * limitations under the License. */ -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java index 097cb8601121c..93b70ebbf3627 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SingleMapBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; @@ -33,14 +33,14 @@ import java.lang.invoke.MethodHandles; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java index 6ae7ddf6fce2a..09398a389a1df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToJsonCast.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.fasterxml.jackson.core.JsonGenerator; import com.google.common.collect.ImmutableList; import io.airlift.slice.DynamicSliceOutput; @@ -35,12 +35,12 @@ import java.util.Map; import java.util.TreeMap; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.operator.scalar.JsonOperators.JSON_FACTORY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.JsonGeneratorWriter; import static com.facebook.presto.util.JsonUtil.ObjectKeyProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java index 8899cf33519ff..07ad679fbab08 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapToMapCast.java @@ -14,33 +14,33 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueWriter; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueWriter; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.internalError; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java index af4fa0bf4b98f..686bca95a8ccb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java @@ -23,7 +23,15 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -31,17 +39,9 @@ import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.SqlTypeBytecodeExpression; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; @@ -71,13 +71,13 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.newInstance; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.subtract; import static com.facebook.presto.bytecode.instruction.VariableInstruction.incrementVariable; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java index cb558e867f24e..dd75272eb05f2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java @@ -24,23 +24,23 @@ import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.TryCatch; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.gen.CallSiteBinder; import com.facebook.presto.sql.gen.SqlTypeBytecodeExpression; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; @@ -69,13 +69,13 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.newInstance; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.subtract; import static com.facebook.presto.bytecode.instruction.VariableInstruction.incrementVariable; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapValues.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapValues.java index 5c02aea8c1cb1..adca86b8d6df6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapValues.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapValues.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; @ScalarFunction("map_values") @Description("Returns the values of the given map(K,V) as an array") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java index 44bbd53d0786d..eee0e2ec8a183 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java @@ -13,37 +13,37 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SingleMapBlock; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SingleMapBlock; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.gen.lambda.LambdaFunctionInterface; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Throwables.throwIfUnchecked; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MathFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MathFunctions.java index 19f0eed4a94b8..665fa81504f1d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MathFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MathFunctions.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.type.Constraint; import com.facebook.presto.type.LiteralParameter; import com.google.common.primitives.Doubles; @@ -36,22 +36,22 @@ import java.math.BigInteger; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.type.Decimals.longTenToNth; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.add; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.isNegative; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.isZero; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.negate; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescaleTruncate; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.subtract; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.throwIfOverflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.Decimals.longTenToNth; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.add; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.isNegative; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.isZero; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.negate; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescaleTruncate; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.subtract; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.throwIfOverflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.type.DecimalOperators.modulusScalarFunction; import static com.facebook.presto.type.DecimalOperators.modulusSignatureBuilder; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java index 6d6e2058c6223..f34128b606864 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ParametricScalar.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ParametricScalar.java index 7a4db8a575ba2..411381a23dce5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ParametricScalar.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ParametricScalar.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.annotations.VisibleForTesting; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java index 675611dab9365..a21e38dbd0ea3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/QuantileDigestFunctions.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.stats.QuantileDigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableIntToFloat; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.sortableLongToDouble; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.util.Failures.checkCondition; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java index 0c5bf86d7d360..2f7fb84d09973 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JCastToRegexpFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.type.Re2JRegexp; import com.facebook.presto.type.Re2JRegexpType; import com.google.common.collect.ImmutableList; @@ -27,11 +27,11 @@ import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.Chars.padSpaces; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Chars.padSpaces; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.invoke.MethodHandles.insertArguments; import static java.util.Collections.emptyList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpFunctions.java index 0e9784c4f21bc..01ed27a096ba2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpFunctions.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.Constraint; import com.facebook.presto.type.Re2JRegexp; import com.facebook.presto.type.Re2JRegexpType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java index 665091f810bcf..592806fbcfc1f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; @@ -30,7 +30,7 @@ import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; @ScalarFunction("regexp_replace") @Description("replaces substrings matching a regular expression using a lambda function") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RepeatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RepeatFunction.java index aab9110715b80..78b453b8395fd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RepeatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RepeatFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java index e0abd2ebaa1de..e83a0d6485057 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowComparisonOperator.java @@ -13,22 +13,22 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.spi.function.Signature.orderableWithVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.TypeUtils.checkElementNotNull; import static com.facebook.presto.util.Failures.internalError; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java index f703d560370ad..6dd7bfda174a7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowDistinctFromOperator.java @@ -1,4 +1,3 @@ -package com.facebook.presto.operator.scalar; /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -12,19 +11,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionInvoker; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.InvocationConvention; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; @@ -32,13 +32,13 @@ import java.util.Optional; import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.BLOCK_AND_POSITION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.NULL_FLAG; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java index 5a50bd4c08842..fa0b062b8463a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowEqualOperator.java @@ -13,26 +13,26 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java index 8385b10686a07..f86701433ee06 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOperator.java @@ -13,12 +13,12 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java index 1879d5409d17b..be30acb8b38b4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowGreaterThanOrEqualOperator.java @@ -13,12 +13,12 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java index f66d5ca7f8cb4..52a53fd4aa2cd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowHashCodeOperator.java @@ -14,23 +14,23 @@ */ import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public class RowHashCodeOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java index f0550ab029abc..56dc12a663c60 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowIndeterminateOperator.java @@ -22,12 +22,12 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CachedInstanceBinder; import com.facebook.presto.sql.gen.CallSiteBinder; import com.google.common.collect.ImmutableList; @@ -44,11 +44,11 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantFalse; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.InvokeFunctionBytecodeExpression.invokeFunction; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java index bf3c540b711ba..e1b77fd4a775d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOperator.java @@ -13,12 +13,12 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java index abc6945370a80..57cb3f5f2c7c6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowLessThanOrEqualOperator.java @@ -13,12 +13,12 @@ * limitations under the License. */ +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java index 317fb5cb96a3f..0795c1b74f3c4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowNotEqualOperator.java @@ -14,23 +14,23 @@ */ import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; public class RowNotEqualOperator diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java index 045acd45680de..8a6455176f5ca 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToJsonCast.java @@ -14,15 +14,15 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.util.JsonUtil.JsonGeneratorWriter; import com.fasterxml.jackson.core.JsonGenerator; import com.google.common.collect.ImmutableList; @@ -35,12 +35,12 @@ import java.util.ArrayList; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.operator.scalar.JsonOperators.JSON_FACTORY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.JsonGeneratorWriter.createJsonGeneratorWriter; import static com.facebook.presto.util.JsonUtil.canCastToJson; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java index e33c765ad53fc..61c439313d8ce 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/RowToRowCast.java @@ -21,19 +21,19 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlOperator; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.CachedInstanceBinder; import com.facebook.presto.sql.gen.CallSiteBinder; import com.google.common.base.Joiner; @@ -54,10 +54,10 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantInt; import static com.facebook.presto.bytecode.expression.BytecodeExpressions.constantNull; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.gen.InvokeFunctionBytecodeExpression.invokeFunction; import static com.facebook.presto.sql.gen.SqlTypeBytecodeExpression.constantType; import static com.facebook.presto.type.UnknownType.UNKNOWN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SequenceFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SequenceFunction.java index af84f2153f394..dec168a9768ec 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SequenceFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SequenceFunction.java @@ -13,26 +13,26 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.DateTimeOperators; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.operator.scalar.DateTimeFunctions.diffDate; import static com.facebook.presto.operator.scalar.DateTimeFunctions.diffTimestamp; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.facebook.presto.util.Failures.checkCondition; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SessionFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SessionFunctions.java index 94901b93cff37..a266a4c3a4ce8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SessionFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SessionFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java index 14c4535514d0a..1f2ab53cbb08c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.lambda.LambdaFunctionInterface; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -32,8 +32,8 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.util.Failures.checkCondition; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java index 5104f115663f8..5d783ae605267 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Multimap; @@ -32,8 +32,8 @@ import java.util.Collection; import java.util.Map; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.util.Failures.checkCondition; @Description("creates a multimap by splitting a string into key/value pairs") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java index 79f8291a5ad50..32ffda6be5335 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/StringFunctions.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.CodePointsType; import com.facebook.presto.type.Constraint; import com.facebook.presto.type.LiteralParameter; @@ -37,10 +37,10 @@ import java.text.Normalizer; import java.util.OptionalInt; +import static com.facebook.presto.common.type.Chars.padSpaces; +import static com.facebook.presto.common.type.Chars.trimTrailingSpaces; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.Chars.padSpaces; -import static com.facebook.presto.spi.type.Chars.trimTrailingSpaces; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.util.Failures.checkCondition; import static io.airlift.slice.SliceUtf8.countCodePoints; import static io.airlift.slice.SliceUtf8.getCodePointAt; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TDigestFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TDigestFunctions.java index 2b816b6be6c7f..2c77e15223a66 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TDigestFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TDigestFunctions.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.tdigest.TDigest; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.function.SqlFunctionVisibility.EXPERIMENTAL; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.tdigest.TDigest.createTDigest; public final class TDigestFunctions diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java index 21bf4bc02ab16..d2eff538ac2e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryCastFunction.java @@ -14,6 +14,8 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -22,19 +24,17 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.lang.invoke.MethodHandles.catchException; import static java.lang.invoke.MethodHandles.constant; import static java.lang.invoke.MethodHandles.dropArguments; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryFunction.java index 2874900a7e1d1..3fe0d689e9536 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TryFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TypeOfFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TypeOfFunction.java index 3592811f93fef..7c3d30a270ee2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/TypeOfFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/TypeOfFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/UrlFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/UrlFunctions.java index 8f48752096fb8..ecdfb3a21cbf3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/UrlFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/UrlFunctions.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.Constraint; import com.google.common.base.Splitter; import com.google.common.escape.Escaper; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/VarbinaryFunctions.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/VarbinaryFunctions.java index 70c867b773ca2..a61a6674347f7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/VarbinaryFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/VarbinaryFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.hash.Hashing; import com.google.common.io.BaseEncoding; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/WilsonInterval.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/WilsonInterval.java index a2082b4c0fdbc..7171cd1877063 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/WilsonInterval.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/WilsonInterval.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.util.Failures.checkCondition; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java index fea48afcb9c64..53bdf5101bd29 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipFunction.java @@ -14,31 +14,31 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.join; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java index 0b97108cf2587..369281b4e50cc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java @@ -13,34 +13,34 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.lambda.BinaryFunctionInterface; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.Optional; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Throwables.throwIfUnchecked; import static java.lang.Math.max; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java index 3b7cf854bdc72..449fb32124fd4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/OperatorValidator.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator.scalar.annotations; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.type.UnknownType; import com.google.common.base.Joiner; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ParametricScalarImplementation.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ParametricScalarImplementation.java index 7bf4ee35f8142..3c5e5ee4ec26a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ParametricScalarImplementation.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/annotations/ParametricScalarImplementation.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.operator.scalar.annotations; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.ParametricImplementation; @@ -23,20 +29,14 @@ import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LongVariableConstraint; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -59,6 +59,7 @@ import java.util.Set; import java.util.stream.Stream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.ParametricFunctionHelpers.bindDependencies; import static com.facebook.presto.operator.annotations.FunctionsParserHelper.containsImplementationDependencyAnnotation; import static com.facebook.presto.operator.annotations.FunctionsParserHelper.containsLegacyNullable; @@ -78,7 +79,6 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.StandardErrorCode.FUNCTION_IMPLEMENTATION_ERROR; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayOfRowsUnnester.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayOfRowsUnnester.java index fb7eb6bd02bad..508daf7b528df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayOfRowsUnnester.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayOfRowsUnnester.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarRow; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarRow; import org.openjdk.jol.info.ClassLayout; import static com.facebook.presto.array.Arrays.ensureCapacity; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; import static io.airlift.slice.SizeOf.sizeOf; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayUnnester.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayUnnester.java index 927376cf69052..bf0163fc64d23 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayUnnester.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ArrayUnnester.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; import org.openjdk.jol.info.ClassLayout; import static com.facebook.presto.array.Arrays.ensureCapacity; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; import static io.airlift.slice.SizeOf.sizeOf; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/MapUnnester.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/MapUnnester.java index 0dc915daed67d..77c58423ba935 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/MapUnnester.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/MapUnnester.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarMap; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarMap; import org.openjdk.jol.info.ClassLayout; import static com.facebook.presto.array.Arrays.ensureCapacity; -import static com.facebook.presto.spi.block.ColumnarMap.toColumnarMap; +import static com.facebook.presto.common.block.ColumnarMap.toColumnarMap; import static io.airlift.slice.SizeOf.sizeOf; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ReplicatedBlockBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ReplicatedBlockBuilder.java index 9484cc2846d5a..239c7fc72b791 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/ReplicatedBlockBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/ReplicatedBlockBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; import java.util.Arrays; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestBlockBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestBlockBuilder.java index 549dc89b9d89b..416b244882048 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestBlockBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestBlockBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java index 280d4c88c2e0d..65fae2afb81d1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java @@ -14,6 +14,12 @@ package com.facebook.presto.operator.unnest; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; @@ -21,13 +27,7 @@ import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.repartition.PartitionedOutputOperator; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/Unnester.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/Unnester.java index a1715f42bd71e..39eeeb7d204dc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/Unnester.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/Unnester.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.unnest; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; /** * Unnester is a layer of abstraction between {@link UnnestOperator} and {@link UnnestBlockBuilder} to enable diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/AggregateWindowFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/AggregateWindowFunction.java index 25ed08c4b6ac0..cde7e1477affc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/AggregateWindowFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/AggregateWindowFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.window; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.WindowFunction; import com.facebook.presto.spi.function.WindowIndex; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/CumulativeDistributionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/CumulativeDistributionFunction.java index 051f3cefbfe7f..1f5a47ca6fb3f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/CumulativeDistributionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/CumulativeDistributionFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; @WindowFunctionSignature(name = "cume_dist", returnType = "double") public class CumulativeDistributionFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/DenseRankFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/DenseRankFunction.java index 781c1a29e49c9..a9a5bd1235f87 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/DenseRankFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/DenseRankFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @WindowFunctionSignature(name = "dense_rank", returnType = "bigint") public class DenseRankFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/FirstValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/FirstValueFunction.java index 03bedcdcc301e..cf7058a7efa77 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/FirstValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/FirstValueFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/LagFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/LagFunction.java index b0d593d1a5bfa..aa61d2bf636f6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/LagFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/LagFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/LastValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/LastValueFunction.java index a3a82bab72122..6ddbbc4d1ac20 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/LastValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/LastValueFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/LeadFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/LeadFunction.java index cc80648974032..923b45b40abeb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/LeadFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/LeadFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/NTileFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/NTileFunction.java index 0c500280e8ec5..1a0bd0b3ebc56 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/NTileFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/NTileFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.util.Failures.checkCondition; @WindowFunctionSignature(name = "ntile", returnType = "bigint", argumentTypes = "bigint") diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/NthValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/NthValueFunction.java index 5ee7bec67b6e9..901b7edc4feb8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/NthValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/NthValueFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/PagesWindowIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/window/PagesWindowIndex.java index 15f78a5bb38cd..addc676fc3727 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/PagesWindowIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/PagesWindowIndex.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.window; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.WindowIndex; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/PercentRankFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/PercentRankFunction.java index 4483abd6d72f6..29ce136e7eb9f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/PercentRankFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/PercentRankFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; @WindowFunctionSignature(name = "percent_rank", returnType = "double") public class PercentRankFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/RankFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/RankFunction.java index 8d2fe8b82bd23..23ba81f6fffc6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/RankFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/RankFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @WindowFunctionSignature(name = "rank", returnType = "bigint") public class RankFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java b/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java index cd6b9fe7f2c1d..bf85b1fe5ec38 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/ReflectionWindowFunctionSupplier.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.window; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.ValueWindowFunction; import com.facebook.presto.spi.function.WindowFunction; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.Lists; import java.lang.reflect.AnnotatedElement; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/RowNumberFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/RowNumberFunction.java index dc2292218e6b4..e69e1199e48dc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/RowNumberFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/RowNumberFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @WindowFunctionSignature(name = "row_number", returnType = "bigint") public class RowNumberFunction diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/SqlWindowFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/window/SqlWindowFunction.java index 4a5dc4ab3750d..1c8c87b0ee7c3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/SqlWindowFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/SqlWindowFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.window; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.BuiltInFunction; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java index 4fae4843c4bc3..ffdd56633ba97 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowAnnotationsParser.java @@ -14,20 +14,20 @@ package com.facebook.presto.operator.window; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; import com.facebook.presto.spi.function.WindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.stream.Stream; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.spi.function.FunctionKind.WINDOW; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java b/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java index 53f1af3c422a2..808f4812e079f 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java +++ b/presto-main/src/main/java/com/facebook/presto/server/PluginManager.java @@ -16,6 +16,9 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.node.NodeInfo; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.ConnectorManager; import com.facebook.presto.eventlistener.EventListenerManager; import com.facebook.presto.execution.resourceGroups.ResourceGroupManager; @@ -23,7 +26,6 @@ import com.facebook.presto.security.AccessControlManager; import com.facebook.presto.server.security.PasswordAuthenticatorManager; import com.facebook.presto.spi.Plugin; -import com.facebook.presto.spi.block.BlockEncoding; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.facebook.presto.spi.connector.ConnectorFactory; import com.facebook.presto.spi.eventlistener.EventListenerFactory; @@ -32,8 +34,6 @@ import com.facebook.presto.spi.security.PasswordAuthenticatorFactory; import com.facebook.presto.spi.security.SystemAccessControlFactory; import com.facebook.presto.spi.session.SessionPropertyConfigurationManagerFactory; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; diff --git a/presto-main/src/main/java/com/facebook/presto/server/QuerySessionSupplier.java b/presto-main/src/main/java/com/facebook/presto/server/QuerySessionSupplier.java index ababef7ccf1c4..966ac5f008b41 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/QuerySessionSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/server/QuerySessionSupplier.java @@ -14,12 +14,12 @@ package com.facebook.presto.server; import com.facebook.presto.Session; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.security.AccessControlContext; import com.facebook.presto.spi.security.Identity; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.SqlEnvironmentConfig; import com.facebook.presto.transaction.TransactionManager; @@ -31,7 +31,7 @@ import java.util.Optional; import static com.facebook.presto.Session.SessionBuilder; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; import static java.util.Map.Entry; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java b/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java index 4d897cf14d398..7abba046be607 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java +++ b/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java @@ -29,6 +29,11 @@ import com.facebook.presto.block.BlockJsonSerde; import com.facebook.presto.client.NodeVersion; import com.facebook.presto.client.ServerInfo; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.ConnectorManager; import com.facebook.presto.connector.system.SystemConnectorModule; import com.facebook.presto.cost.FilterStatsCalculator; @@ -102,15 +107,10 @@ import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.spiller.FileSingleStreamSpillerFactory; import com.facebook.presto.spiller.GenericPartitioningSpillerFactory; import com.facebook.presto.spiller.GenericSpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java index 5cd0181f1ecdb..5a745b433e172 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/ExecutingStatementResource.java @@ -17,13 +17,13 @@ import com.facebook.airlift.log.Logger; import com.facebook.presto.Session; import com.facebook.presto.client.QueryResults; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.execution.QueryManager; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; import com.facebook.presto.operator.ExchangeClient; import com.facebook.presto.operator.ExchangeClientSupplier; import com.facebook.presto.server.ForStatementResource; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.google.common.collect.Ordering; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java index b592902398e63..18ee5a567dcde 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java @@ -21,6 +21,10 @@ import com.facebook.presto.client.QueryResults; import com.facebook.presto.client.StageStats; import com.facebook.presto.client.StatementStats; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.QueryExecution; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryManager; @@ -35,13 +39,9 @@ import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.security.SelectedRole; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.transaction.TransactionId; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java index f9b91278567af..de296e2e26999 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.server.protocol; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java index 6b0484707703c..6640baddc3540 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java @@ -14,14 +14,14 @@ package com.facebook.presto.spiller; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.SpillContext; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.spiller.SpillCipher; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java index 01ef6665fd140..5e4bc6068edac 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpillerFactory.java index 8d1b349872ad1..36cddd29b699a 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpillerFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.type.Type; import com.google.inject.Inject; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java index e03b58352c5e4..785e35a9cfcfe 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.SpillContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpillerFactory.java index 0d69d1d7dd854..05971ec5bb853 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpillerFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.type.Type; import com.google.inject.Inject; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpillerFactory.java index 8c720d46d3c4b..54a4cf7bfee76 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpillerFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpillerFactory.java index c56011044c417..d525346cfe83b 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpillerFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/SpillerFactory.java b/presto-main/src/main/java/com/facebook/presto/spiller/SpillerFactory.java index a782b0fd28e3a..56ed5d5e08182 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/SpillerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/SpillerFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java b/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java index e14888d78008b..da99cb7970ea7 100644 --- a/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java +++ b/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.split; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java b/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java index 5ea400f07ad12..fdad012eeb18e 100644 --- a/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java +++ b/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.split; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.google.common.primitives.Ints; import java.io.IOException; diff --git a/presto-main/src/main/java/com/facebook/presto/split/MappedRecordSet.java b/presto-main/src/main/java/com/facebook/presto/split/MappedRecordSet.java index 551df6d7b7227..1c0e5fe5119f5 100644 --- a/presto-main/src/main/java/com/facebook/presto/split/MappedRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/split/MappedRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.split; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.primitives.Ints; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java index d9f418fc2652b..7f6dae7f89b5f 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.sql; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.google.common.base.Defaults; import java.lang.invoke.MethodHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/Serialization.java b/presto-main/src/main/java/com/facebook/presto/sql/Serialization.java index 45924e908102c..2271eb00439bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/Serialization.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/Serialization.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.FunctionCall; @@ -31,7 +31,7 @@ import java.io.IOException; import java.util.Optional; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/SqlEnvironmentConfig.java b/presto-main/src/main/java/com/facebook/presto/sql/SqlEnvironmentConfig.java index 133b653fa473e..bcb02475c52ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/SqlEnvironmentConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/SqlEnvironmentConfig.java @@ -15,7 +15,7 @@ import com.facebook.airlift.configuration.Config; import com.facebook.airlift.configuration.ConfigDescription; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import javax.annotation.Nullable; import javax.validation.constraints.NotNull; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Analysis.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Analysis.java index a3e0f64f38f3b..06fff6da18e2c 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Analysis.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Analysis.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.analyzer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.security.Identity; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.tree.ExistsPredicate; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.FunctionCall; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalysis.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalysis.java index e8da7066fc59e..1db3ad24843d3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalysis.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalysis.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.analyzer; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.tree.ExistsPredicate; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.FunctionCall; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java index e76505e09ebe4..54a99ef03dad8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ExpressionAnalyzer.java @@ -15,6 +15,16 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalParseResult; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -26,16 +36,6 @@ import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalParseResult; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.tree.ArithmeticBinaryExpression; @@ -116,24 +116,24 @@ import java.util.function.Function; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.NodeUtils.getSortItemsFromOrderBy; import static com.facebook.presto.sql.analyzer.Analyzer.verifyNoAggregateWindowOrGroupingFunctions; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.EXPRESSION_NOT_CONSTANT; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Field.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Field.java index 4a762daa95e76..a1bec62dbcc79 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Field.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/Field.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql.analyzer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.QualifiedObjectName; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.tree.QualifiedName; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ResolvedField.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ResolvedField.java index 3755661992927..5cacdb0fd6ada 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ResolvedField.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/ResolvedField.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.analyzer; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import javax.annotation.concurrent.Immutable; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java index 8c9e1a2079fcb..3649f91dee3e3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/StatementAnalyzer.java @@ -17,6 +17,10 @@ import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.OperatorNotFoundException; @@ -34,10 +38,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.security.AccessDeniedException; import com.facebook.presto.spi.security.Identity; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.ParsingException; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.ExpressionInterpreter; @@ -149,15 +149,15 @@ import java.util.stream.Collectors; import static com.facebook.presto.SystemSessionProperties.getMaxGroupingSets; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.function.FunctionKind.AGGREGATE; import static com.facebook.presto.spi.function.FunctionKind.WINDOW; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.NodeUtils.getSortItemsFromOrderBy; import static com.facebook.presto.sql.NodeUtils.mapFromProperties; import static com.facebook.presto.sql.ParsingUtil.createParsingOptions; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/TypeSignatureProvider.java b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/TypeSignatureProvider.java index e5e796339db18..b243756b0eb74 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/analyzer/TypeSignatureProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/analyzer/TypeSignatureProvider.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql.analyzer; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/AndCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/AndCodeGenerator.java index f4cfb2d677088..bac6e61f4768d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/AndCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/AndCodeGenerator.java @@ -18,8 +18,8 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Preconditions; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayGeneratorUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayGeneratorUtils.java index ced4714312f4c..8f38869ff8ea8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayGeneratorUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayGeneratorUtils.java @@ -16,8 +16,8 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; -import com.facebook.presto.spi.type.Type; import java.util.function.Function; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayMapBytecodeExpression.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayMapBytecodeExpression.java index 8de57a64efe6f..06dab66e53d8e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayMapBytecodeExpression.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ArrayMapBytecodeExpression.java @@ -21,10 +21,10 @@ import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.type.Type; import com.facebook.presto.type.UnknownType; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/BindCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/BindCodeGenerator.java index 177ac75191dbe..bba4f7bec3b4f 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/BindCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/BindCodeGenerator.java @@ -16,9 +16,9 @@ import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.LambdaBytecodeGenerator.CompiledLambda; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/BodyCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/BodyCompiler.java index 225a726f38c3d..aab0d25a98405 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/BodyCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/BodyCompiler.java @@ -14,7 +14,7 @@ package com.facebook.presto.sql.gen; import com.facebook.presto.bytecode.ClassDefinition; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.RowExpression; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/BytecodeUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/BytecodeUtils.java index 1948b5c91e2fd..0123a1dbb2e01 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/BytecodeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/BytecodeUtils.java @@ -20,13 +20,13 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.InputReferenceCompiler.InputReferenceNode; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CoalesceCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CoalesceCodeGenerator.java index 1b36175f9679a..2e32665911431 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/CoalesceCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CoalesceCodeGenerator.java @@ -17,8 +17,8 @@ import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.Lists; import java.util.ArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CompilerOperations.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CompilerOperations.java index af118cac0a04d..f57f972ef08aa 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/CompilerOperations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CompilerOperations.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.gen; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import javax.annotation.Nullable; import java.util.Set; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; // This methods are statically bound by the compiler @SuppressWarnings("UnusedDeclaration") diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java index dcdc73f6aac97..1287f52e16e6e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java @@ -23,13 +23,14 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.WhileLoop; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.CursorProcessorOutput; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; @@ -38,7 +39,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.LambdaBytecodeGenerator.CompiledLambda; import com.google.common.primitives.Primitives; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/DereferenceCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/DereferenceCodeGenerator.java index 52fb3e423de0e..dda02f964a4a6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/DereferenceCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/DereferenceCodeGenerator.java @@ -19,10 +19,10 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java index bf7e430bbd53b..5798a661044b2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/ExpressionCompiler.java @@ -15,13 +15,13 @@ import com.facebook.presto.bytecode.ClassDefinition; import com.facebook.presto.bytecode.CompilationException; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.project.CursorProcessor; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; @@ -43,8 +43,8 @@ import static com.facebook.presto.bytecode.Access.PUBLIC; import static com.facebook.presto.bytecode.Access.a; import static com.facebook.presto.bytecode.ParameterizedType.type; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.StandardErrorCode.COMPILER_ERROR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.gen.BytecodeUtils.invoke; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.util.CompilerUtils.defineClass; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/FunctionCallCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/FunctionCallCodeGenerator.java index 2d12903176509..6625384c06dd2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/FunctionCallCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/FunctionCallCodeGenerator.java @@ -15,11 +15,11 @@ import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.BytecodeUtils.OutputBlockVariableAndType; import java.util.ArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/IfCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/IfCodeGenerator.java index 76a075a0c49a8..59219563e92f7 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/IfCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/IfCodeGenerator.java @@ -17,8 +17,8 @@ import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Preconditions; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java index 02676ce2d7494..fb2d385b08a57 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/InCodeGenerator.java @@ -20,15 +20,15 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.SwitchStatement.SwitchBuilder; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.util.FastutilSetHelper; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/InputReferenceCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/InputReferenceCompiler.java index a2840b126b5d9..d850dc9140b7d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/InputReferenceCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/InputReferenceCompiler.java @@ -21,6 +21,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/IsNullCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/IsNullCodeGenerator.java index e78a42fefcaa1..a3aceeed7288e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/IsNullCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/IsNullCodeGenerator.java @@ -16,8 +16,8 @@ import com.facebook.presto.bytecode.BytecodeBlock; import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Preconditions; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java index aefbe0ae02a44..36ffd4683a802 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java @@ -28,7 +28,12 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.JoinHash; @@ -39,11 +44,6 @@ import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.cache.CacheBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java index 6b8ec6c448324..b45f1106292e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java @@ -23,13 +23,13 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.InternalJoinFilterFunction; import com.facebook.presto.operator.JoinFilterFunction; import com.facebook.presto.operator.StandardJoinFilterFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java index 8d1a56eb1c8f4..cc0048bfd30cd 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/LambdaBytecodeGenerator.java @@ -24,10 +24,10 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.aggregation.AccumulatorCompiler; import com.facebook.presto.operator.aggregation.LambdaProvider; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java index 3f91092bcb04a..764e222183f66 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/NullIfCodeGenerator.java @@ -19,14 +19,14 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrCodeGenerator.java index a657591160ac6..acb4326239297 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrCodeGenerator.java @@ -18,8 +18,8 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Preconditions; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java index 004898aa46c9f..29167c116cd3e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java @@ -22,6 +22,9 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PageWithPositionComparator; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.PagesIndexComparator; @@ -30,9 +33,6 @@ import com.facebook.presto.operator.SimplePagesIndexComparator; import com.facebook.presto.operator.SyntheticAddress; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 68b5050f20acc..706fccee48775 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -24,6 +24,9 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.Work; import com.facebook.presto.operator.project.ConstantPageProjection; @@ -37,9 +40,6 @@ import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowConstructorCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowConstructorCodeGenerator.java index 3dabb895f0d84..60a4200eab481 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowConstructorCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowConstructorCodeGenerator.java @@ -18,11 +18,11 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java index 6e62278adf60c..9817121fc490d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionCompiler.java @@ -18,10 +18,10 @@ import com.facebook.presto.bytecode.ClassDefinition; import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; @@ -47,9 +47,9 @@ import static com.facebook.presto.bytecode.instruction.Constant.loadInt; import static com.facebook.presto.bytecode.instruction.Constant.loadLong; import static com.facebook.presto.bytecode.instruction.Constant.loadString; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.gen.BytecodeUtils.generateWrite; import static com.facebook.presto.sql.gen.BytecodeUtils.loadConstant; import static com.facebook.presto.sql.gen.LambdaBytecodeGenerator.generateLambda; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java index ac74f4be2f048..2df2042b4bdb8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java @@ -20,12 +20,12 @@ import com.facebook.presto.bytecode.Parameter; import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.project.PageFieldsToInputParametersRewriter; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.Predicate; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/SpecialFormBytecodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/SpecialFormBytecodeGenerator.java index f20e20a6837c5..d0bbbd1166ad3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/SpecialFormBytecodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/SpecialFormBytecodeGenerator.java @@ -15,8 +15,8 @@ import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/SqlTypeBytecodeExpression.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/SqlTypeBytecodeExpression.java index 9d98e112a47e8..cdbb25c43eb70 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/SqlTypeBytecodeExpression.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/SqlTypeBytecodeExpression.java @@ -17,7 +17,7 @@ import com.facebook.presto.bytecode.MethodGenerationContext; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.InvokeInstruction; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java index 1edc66190c7df..93b6c8bfe0615 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/SwitchCodeGenerator.java @@ -20,10 +20,10 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.instruction.LabelNode; import com.facebook.presto.bytecode.instruction.VariableInstruction; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/AnalyzedExpressionRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/AnalyzedExpressionRewriter.java index e63c44502f83e..2ac33ad786a6e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/AnalyzedExpressionRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/AnalyzedExpressionRewriter.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.ExpressionRewriter; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/Coercer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/Coercer.java index b6966c8655794..4d6b24ac33055 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/Coercer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/Coercer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.tree.Cast; import com.facebook.presto.sql.tree.Expression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarAtTimeZoneRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarAtTimeZoneRewriter.java index b406cf44e53cd..6f9eed557819b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarAtTimeZoneRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarAtTimeZoneRewriter.java @@ -14,8 +14,8 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.AtTimeZone; import com.facebook.presto.sql.tree.Cast; @@ -30,10 +30,10 @@ import java.util.Map; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Objects.requireNonNull; public class DesugarAtTimeZoneRewriter diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarRowSubscriptRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarRowSubscriptRewriter.java index 64974e0a1caca..8dd3a793a772c 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarRowSubscriptRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/DesugarRowSubscriptRewriter.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.Cast; import com.facebook.presto.sql.tree.DereferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java index 4834b04b99373..a8f43c40edb84 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java @@ -14,10 +14,12 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.OperatorNotFoundException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.predicate.DiscreteValues; import com.facebook.presto.spi.predicate.Domain; @@ -27,9 +29,7 @@ import com.facebook.presto.spi.predicate.Ranges; import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.Utils; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java index 30d4095ebb4fc..b8d29c15455b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionInterpreter.java @@ -16,28 +16,28 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.block.SingleRowBlock; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeUtils; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.scalar.ArraySubscriptOperator; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.block.SingleRowBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeUtils; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; import com.facebook.presto.sql.analyzer.Scope; @@ -115,13 +115,13 @@ import java.util.stream.Stream; import static com.facebook.presto.SystemSessionProperties.isLegacyRowFieldOrdinalAccessEnabled; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.ConstantExpressionVerifier.verifyExpressionIsConstant; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.createConstantAnalyzer; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/HttpRemoteSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/HttpRemoteSourceFactory.java index 0065ba3b1f21f..a59727cb3f82e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/HttpRemoteSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/HttpRemoteSourceFactory.java @@ -14,15 +14,15 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.ExchangeOperator.ExchangeOperatorFactory; import com.facebook.presto.operator.MergeOperator.MergeOperatorFactory; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.TaskExchangeClientManager; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.OrderingCompiler; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/Interpreters.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/Interpreters.java index c800be2918293..a20601473c632 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/Interpreters.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/Interpreters.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.type.LikeFunctions; import io.airlift.joni.Regex; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java index 4922bbe21fac6..b457e2290bec0 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralEncoder.java @@ -13,25 +13,25 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockSerdeUtil; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.operator.scalar.VarbinaryFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.BlockSerdeUtil; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.tree.ArithmeticUnaryExpression; import com.facebook.presto.sql.tree.BooleanLiteral; import com.facebook.presto.sql.tree.Cast; @@ -55,18 +55,18 @@ import java.util.List; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.constantNull; import static com.facebook.presto.type.UnknownType.UNKNOWN; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralInterpreter.java index fb2896f5f4d5b..82aaf2341fc88 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LiteralInterpreter.java @@ -13,33 +13,33 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.scalar.VarbinaryFunctions; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.ConstantExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.AstVisitor; @@ -68,12 +68,12 @@ import java.math.BigInteger; import java.math.MathContext; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.INVALID_LITERAL; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.TYPE_MISMATCH; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 2852b1401a833..6b4296c189a76 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -16,8 +16,13 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.execution.ExplainAnalyzeContext; import com.facebook.presto.execution.StageExecutionId; import com.facebook.presto.execution.TaskManagerConfig; @@ -115,11 +120,8 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.AggregationNode.Step; @@ -141,8 +143,6 @@ import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.spiller.PartitioningSpillerFactory; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.spiller.SpillerFactory; @@ -233,6 +233,9 @@ import static com.facebook.presto.SystemSessionProperties.isOptimizeCommonSubExpressions; import static com.facebook.presto.SystemSessionProperties.isOptimizedRepartitioningEnabled; import static com.facebook.presto.SystemSessionProperties.isSpillEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression; import static com.facebook.presto.geospatial.SphericalGeographyUtils.sphericalDistance; @@ -259,9 +262,6 @@ import static com.facebook.presto.spi.plan.AggregationNode.Step.INTERMEDIATE; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.sql.gen.LambdaBytecodeGenerator.compileLambdaProvider; import static com.facebook.presto.sql.planner.RowExpressionInterpreter.rowExpressionInterpreter; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.COORDINATOR_DISTRIBUTION; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java index d1b68beae6df6..da2467db178ee 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.CachingCostProvider; import com.facebook.presto.cost.CachingStatsProvider; import com.facebook.presto.cost.CostCalculator; @@ -43,7 +44,6 @@ import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Field; import com.facebook.presto.sql.analyzer.RelationId; @@ -91,13 +91,13 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.isPrintStatsForNonJoinQuery; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.planner.plan.TableWriterNode.CreateName; import static com.facebook.presto.sql.planner.plan.TableWriterNode.InsertReference; import static com.facebook.presto.sql.planner.plan.TableWriterNode.WriterTarget; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/NodePartitioningManager.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/NodePartitioningManager.java index e4e4ce6c367a2..a5d651b7eade2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/NodePartitioningManager.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/NodePartitioningManager.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.scheduler.BucketNodeMap; import com.facebook.presto.execution.scheduler.FixedBucketNodeMap; import com.facebook.presto.execution.scheduler.NodeScheduler; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitionHandle; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.EmptySplit; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java index e4a1e1dc659ab..07329ddacdc5f 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/NullabilityAnalyzer.java @@ -14,14 +14,14 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.tree.Cast; import com.facebook.presto.sql.tree.DefaultExpressionTraversalVisitor; import com.facebook.presto.sql.tree.DereferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ParameterRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ParameterRewriter.java index a1f1d667e6bb1..92a621e03765c 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ParameterRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ParameterRewriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.tree.Cast; import com.facebook.presto.sql.tree.Expression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragment.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragment.java index 61a28cc2bb9db..747632a5cb103 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragment.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragment.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.operator.StageExecutionDescriptor; import com.facebook.presto.server.smile.Codec; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.plan.PlanFragmentId; import com.facebook.presto.sql.planner.plan.RemoteSourceNode; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java index 23653624a4b86..ee799e23b611a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java @@ -94,14 +94,14 @@ import static com.facebook.presto.SystemSessionProperties.isGroupedExecutionForEligibleTableScansEnabled; import static com.facebook.presto.SystemSessionProperties.isRecoverableGroupedExecutionEnabled; import static com.facebook.presto.SystemSessionProperties.isTableWriterMergeOperatorEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.QUERY_HAS_TOO_MANY_STAGES; import static com.facebook.presto.spi.StandardWarningCode.TOO_MANY_STAGES; import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_PAGE_SINK_COMMIT; import static com.facebook.presto.spi.connector.ConnectorCapabilities.SUPPORTS_REWINDABLE_SPLIT_SOURCE; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.planner.SchedulingOrderVisitor.scheduleOrder; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.COORDINATOR_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java index 0048fc2566edc..88dfa022f6a00 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanVariableAllocator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.VariableAllocator; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.Field; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.FunctionCall; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java index 38532145f11eb..4e78c65ae01b5 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlannerUtils.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java index 967ab634c22bf..9022fa44fa6e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java @@ -14,10 +14,11 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.Assignments; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Field; import com.facebook.presto.sql.analyzer.FieldId; @@ -79,11 +79,11 @@ import java.util.Set; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.plan.AggregationNode.groupingSets; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.NodeUtils.getSortItemsFromOrderBy; import static com.facebook.presto.sql.planner.PlannerUtils.toOrderingScheme; import static com.facebook.presto.sql.planner.PlannerUtils.toSortOrder; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java index 7d3a00d3e864b..a13e395cb2d94 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java @@ -15,6 +15,10 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; @@ -32,10 +36,6 @@ import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Field; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RemoteSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RemoteSourceFactory.java index 91e671865d848..8e67defd5ba6d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RemoteSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RemoteSourceFactory.java @@ -14,10 +14,10 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.OperatorFactory; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java index cb941f91ad084..4e422a28407f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionEqualityInference.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.RowExpressionNodeInliner; import com.facebook.presto.expressions.RowExpressionTreeRewriter; import com.facebook.presto.metadata.FunctionManager; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; import com.facebook.presto.util.DisjointSet; import com.google.common.annotations.VisibleForTesting; @@ -46,8 +46,8 @@ import java.util.Set; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.uniqueSubExpressions; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java index 1ea4509726b08..b81c969cd4fa0 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionInterpreter.java @@ -15,13 +15,20 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RowBlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RowBlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; @@ -33,13 +40,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.planner.Interpreters.LambdaVariableResolver; import com.facebook.presto.sql.relational.FunctionResolution; @@ -60,6 +60,16 @@ import java.util.stream.Stream; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ARRAY_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_MAP_CAST; @@ -80,16 +90,6 @@ import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.ROW_CONSTRUCTOR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.SWITCH; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.WHEN; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.gen.VarArgsToMapAdapterGenerator.generateVarArgsToMapAdapter; import static com.facebook.presto.sql.planner.Interpreters.interpretDereference; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java index 8286ceea98d3f..a260a1b3f4e11 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RowExpressionPredicateExtractor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.OperatorNotFoundException; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.planner.plan.AssignUniqueId; import com.facebook.presto.sql.planner.plan.DistinctLimitNode; import com.facebook.presto.sql.planner.plan.ExchangeNode; @@ -58,10 +58,10 @@ import java.util.function.Predicate; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.optimizations.SetOperationNodeUtils.outputMap; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/StatisticsAggregationPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/StatisticsAggregationPlanner.java index c4b1359a620fe..4e1c2fcb0c8c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/StatisticsAggregationPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/StatisticsAggregationPlanner.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.aggregation.MaxDataSizeForStats; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.statistics.ColumnStatisticType; import com.facebook.presto.spi.statistics.TableStatisticType; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.sql.planner.plan.StatisticAggregations; import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; @@ -40,10 +40,10 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.castToRowExpression; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/SubqueryPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/SubqueryPlanner.java index 708899681edaf..efadb7ec2fcc4 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/SubqueryPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/SubqueryPlanner.java @@ -58,7 +58,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.SemanticExceptions.notSupportedException; import static com.facebook.presto.sql.analyzer.SemanticExceptions.subQueryNotSupportedError; import static com.facebook.presto.sql.planner.ExpressionNodeInliner.replaceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java index 43799fa901d48..8c84742b8525b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.scheduler.NodeScheduler; import com.facebook.presto.execution.scheduler.nodeSelection.NodeSelector; import com.facebook.presto.metadata.InternalNode; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/TranslationMap.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/TranslationMap.java index e51a2c2640163..d1d495b290f0a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/TranslationMap.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/TranslationMap.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.ResolvedField; import com.facebook.presto.sql.tree.Cast; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/TypeProvider.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/TypeProvider.java index d017494db8305..c263eb4dd0a67 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/TypeProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/TypeProvider.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.tree.Expression; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java index 97245df5a5019..091faf925f3c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java @@ -15,6 +15,9 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.expressions.RowExpressionNodeInliner; import com.facebook.presto.geospatial.KdbTree; @@ -43,9 +46,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.split.PageSourceManager; import com.facebook.presto.split.SplitManager; import com.facebook.presto.split.SplitSource; @@ -75,16 +75,16 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.SystemSessionProperties.getSpatialPartitioningTableName; import static com.facebook.presto.SystemSessionProperties.isSpatialJoinEnabled; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.KdbTreeType.KDB_TREE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression; import static com.facebook.presto.matching.Capture.newCapture; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SPATIAL_PARTITIONING; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.KdbTreeType.KDB_TREE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.VariablesExtractor.extractUnique; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.INNER; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ImplementFilteredAggregations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ImplementFilteredAggregations.java index 48be05b01f456..1f4effb27f2c8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ImplementFilteredAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ImplementFilteredAggregations.java @@ -31,7 +31,7 @@ import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.ExpressionUtils.combineDisjunctsWithDefault; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; import static com.facebook.presto.sql.planner.plan.Patterns.aggregation; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java index 5c9945e271531..e7f96fe384bf9 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/MultipleDistinctAggregationToMarkDistinct.java @@ -34,7 +34,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.plan.Patterns.aggregation; import static java.util.stream.Collectors.toSet; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java index dd72c2df1e9e6..ad3078b09e35b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.matching.Capture; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; import com.facebook.presto.sql.planner.ExpressionInterpreter; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneCountAggregationOverScalar.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneCountAggregationOverScalar.java index 70c4ea6dacad9..08f3fac343d1e 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneCountAggregationOverScalar.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneCountAggregationOverScalar.java @@ -26,7 +26,7 @@ import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.optimizations.QueryCardinalityUtil.isScalar; import static com.facebook.presto.sql.planner.plan.Patterns.aggregation; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java index 0640b1d88594a..417438c803aab 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushAggregationThroughOuterJoin.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.QualifiedFunctionName; import com.facebook.presto.matching.Capture; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.Ordering; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushProjectionThroughUnion.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushProjectionThroughUnion.java index b3a0051de5651..10d4d4caee2c2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushProjectionThroughUnion.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PushProjectionThroughUnion.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.Type; import com.facebook.presto.matching.Capture; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.ExpressionVariableInliner; import com.facebook.presto.sql.planner.RowExpressionVariableInliner; import com.facebook.presto.sql.planner.iterative.Rule; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RemoveEmptyDelete.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RemoveEmptyDelete.java index f883daf8b306b..2f844c7b26751 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RemoveEmptyDelete.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RemoveEmptyDelete.java @@ -20,8 +20,8 @@ import com.facebook.presto.sql.planner.plan.TableFinishNode; import com.google.common.collect.ImmutableList; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.matching.Pattern.empty; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.plan.Patterns.Values.rows; import static com.facebook.presto.sql.planner.plan.Patterns.delete; import static com.facebook.presto.sql.planner.plan.Patterns.exchange; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java index 7307133c096e6..1ef19042b1664 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RewriteSpatialPartitioningAggregation.java @@ -14,6 +14,8 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; import com.facebook.presto.metadata.Metadata; @@ -24,8 +26,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.tree.FunctionCall; import com.facebook.presto.sql.tree.LongLiteral; @@ -37,9 +37,9 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.getHashPartitionCount; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; import static com.facebook.presto.sql.planner.plan.Patterns.aggregation; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyCountOverConstant.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyCountOverConstant.java index e7254fe071d83..3c284aadff158 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyCountOverConstant.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyCountOverConstant.java @@ -38,8 +38,8 @@ import java.util.Map.Entry; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.matching.Capture.newCapture; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.PlannerUtils.toVariableReference; import static com.facebook.presto.sql.planner.plan.Patterns.aggregation; import static com.facebook.presto.sql.planner.plan.Patterns.project; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyExpressions.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyExpressions.java index 050c21796baba..50f8e974eccc5 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyExpressions.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyExpressions.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.ExpressionInterpreter; import com.facebook.presto.sql.planner.LiteralEncoder; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyRowExpressions.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyRowExpressions.java index 7ddc65b1cd384..6655d5bb5f942 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyRowExpressions.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/SimplifyRowExpressions.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.expressions.RowExpressionRewriter; import com.facebook.presto.expressions.RowExpressionTreeRewriter; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; -import com.facebook.presto.spi.type.BooleanType; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.relational.FunctionResolution; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java index 86ceb5055a2ba..e5a7742329f26 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedInPredicateToJoin.java @@ -60,10 +60,10 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.matching.Pattern.nonEmpty; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.ExpressionUtils.and; import static com.facebook.presto.sql.ExpressionUtils.or; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedScalarSubquery.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedScalarSubquery.java index dbf6f5573b8d8..c6d2231185741 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedScalarSubquery.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformCorrelatedScalarSubquery.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.matching.Captures; import com.facebook.presto.matching.Pattern; import com.facebook.presto.spi.plan.FilterNode; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BooleanType; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.planner.plan.AssignUniqueId; import com.facebook.presto.sql.planner.plan.EnforceSingleRowNode; @@ -37,10 +37,10 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; import static com.facebook.presto.matching.Pattern.nonEmpty; import static com.facebook.presto.spi.StandardErrorCode.SUBQUERY_MULTIPLE_ROWS; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; import static com.facebook.presto.sql.planner.optimizations.PlanNodeSearcher.searchFrom; import static com.facebook.presto.sql.planner.optimizations.QueryCardinalityUtil.isAtMostScalar; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignmentsAsSymbolReferences; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformExistsApplyToLateralNode.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformExistsApplyToLateralNode.java index 1a475c17d2c46..e254150162959 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformExistsApplyToLateralNode.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TransformExistsApplyToLateralNode.java @@ -43,10 +43,10 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.plan.AggregationNode.globalAggregation; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; import static com.facebook.presto.sql.planner.plan.LateralJoinNode.Type.INNER; import static com.facebook.presto.sql.planner.plan.LateralJoinNode.Type.LEFT; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TranslateExpressions.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TranslateExpressions.java index 183b288354b68..a2239e703d667 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TranslateExpressions.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/TranslateExpressions.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.TypeProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java index 5b5ae47c297c7..f74f1ce50ce83 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddExchanges.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.system.GlobalSystemConnector; import com.facebook.presto.execution.QueryManagerConfig.ExchangeMaterializationStrategy; import com.facebook.presto.execution.warnings.WarningCollector; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.plan.ValuesNode; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig.AggregationPartitioningMergingStrategy; import com.facebook.presto.sql.analyzer.FeaturesConfig.PartialMergePushdownStrategy; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddLocalExchanges.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddLocalExchanges.java index cf0a035049ab0..e2068af7a03e0 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddLocalExchanges.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AddLocalExchanges.java @@ -70,10 +70,10 @@ import static com.facebook.presto.SystemSessionProperties.isDistributedSortEnabled; import static com.facebook.presto.SystemSessionProperties.isSpillEnabled; import static com.facebook.presto.SystemSessionProperties.isTableWriterMergeOperatorEnabled; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.operator.aggregation.AggregationUtils.hasSingleNodeExecutionPreference; import static com.facebook.presto.operator.aggregation.AggregationUtils.isDecomposable; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_ARBITRARY_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AggregationNodeUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AggregationNodeUtils.java index aa2cf51795aac..fa08e68a5c9ab 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AggregationNodeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/AggregationNodeUtils.java @@ -28,7 +28,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.castToExpression; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.isExpression; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java index a36aa687f3d6e..a8c1ad0656695 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ExpressionEquivalence.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.SpecialFormExpression.Form; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.tree.Expression; @@ -53,9 +53,9 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.SqlToRowExpressionTranslator.translate; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java index 22032858aec01..7ae6700e6e1b2 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/HashGenerationOptimizer.java @@ -66,7 +66,7 @@ import java.util.Set; import java.util.function.Function; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; import static com.facebook.presto.sql.planner.optimizations.SetOperationNodeUtils.fromListMultimap; import static com.facebook.presto.sql.planner.plan.ChildReplacer.replaceChildren; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ImplementIntersectAndExceptAsUnion.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ImplementIntersectAndExceptAsUnion.java index 3f26f32fc9346..821711f601b10 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ImplementIntersectAndExceptAsUnion.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ImplementIntersectAndExceptAsUnion.java @@ -14,6 +14,8 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.StandardFunctionResolution; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.TypeProvider; @@ -53,10 +53,10 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.plan.AggregationNode.Step; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.optimizations.SetOperationNodeUtils.fromListMultimap; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignmentsAsSymbolReferences; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.asSymbolReference; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java index ddf9e243e0ea2..ffeeba5d4f9c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/JoinNodeUtils.java @@ -23,7 +23,7 @@ import com.facebook.presto.sql.tree.SymbolReference; import com.google.common.collect.ImmutableList; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.FULL; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.INNER; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.LEFT; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java index 6d25a12de4c45..c74e81bfcb764 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/OptimizeMixedDistinctAggregations.java @@ -49,13 +49,13 @@ import static com.facebook.presto.SystemSessionProperties.isOptimizeDistinctAggregationEnabled; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.COALESCE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IF; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PredicatePushDown.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PredicatePushDown.java index 201d405650812..372f4a1217756 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PredicatePushDown.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PredicatePushDown.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.plan.AggregationNode; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.EffectivePredicateExtractor; import com.facebook.presto.sql.planner.EqualityInference; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java index c9422ac494a44..3ecae226f15bf 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableLayout; @@ -38,7 +39,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; import com.facebook.presto.sql.planner.ExpressionInterpreter; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java index 41b6e0f70e818..53b089fa7fbb6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PushdownSubfields.java @@ -17,6 +17,8 @@ import com.facebook.presto.common.Subfield; import com.facebook.presto.common.Subfield.NestedField; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.metadata.Metadata; @@ -40,8 +42,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.planner.plan.ApplyNode; @@ -77,9 +77,9 @@ import static com.facebook.presto.SystemSessionProperties.isLegacyUnnest; import static com.facebook.presto.SystemSessionProperties.isPushdownSubfieldsEnabled; import static com.facebook.presto.common.Subfield.allSubscripts; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java index 263e7114d6610..449669266dc26 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/RowExpressionPredicatePushDown.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.expressions.RowExpressionNodeInliner; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.relation.ExpressionOptimizer; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.RowExpressionEqualityInference; @@ -74,11 +74,11 @@ import java.util.stream.Collectors; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractConjuncts; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignments; import static com.facebook.presto.sql.planner.plan.JoinNode.DistributionType.PARTITIONED; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ScalarAggregationToJoinRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ScalarAggregationToJoinRewriter.java index 4179bd0855107..62090c805a7a6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ScalarAggregationToJoinRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/ScalarAggregationToJoinRewriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.sql.planner.optimizations; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.iterative.Lookup; import com.facebook.presto.sql.planner.optimizations.PlanNodeDecorrelator.DecorrelatedNode; @@ -43,8 +43,8 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.optimizations.PlanNodeSearcher.searchFrom; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignmentsAsSymbolReferences; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/SymbolMapper.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/SymbolMapper.java index 699ce836de95f..0135901e0cddb 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/SymbolMapper.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/SymbolMapper.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.sql.planner.optimizations; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.expressions.RowExpressionRewriter; import com.facebook.presto.expressions.RowExpressionTreeRewriter; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; import com.facebook.presto.spi.plan.Ordering; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/TransformQuantifiedComparisonApplyToLateralJoin.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/TransformQuantifiedComparisonApplyToLateralJoin.java index 07ed76ee17a5c..3bf7d8d68e623 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/TransformQuantifiedComparisonApplyToLateralJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/TransformQuantifiedComparisonApplyToLateralJoin.java @@ -14,6 +14,9 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.StandardFunctionResolution; @@ -26,9 +29,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.TypeProvider; @@ -55,8 +55,8 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.globalAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.combineConjuncts; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identitiesAsSymbolReferences; import static com.facebook.presto.sql.planner.plan.SimplePlanRewriter.rewriteWith; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/UnaliasSymbolReferences.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/UnaliasSymbolReferences.java index 28393ab133b7a..76e1850ecff7d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/UnaliasSymbolReferences.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/UnaliasSymbolReferences.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.ExceptNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java index af8456758d26e..141dbfd433821 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java @@ -46,8 +46,8 @@ import java.util.OptionalInt; import static com.facebook.presto.SystemSessionProperties.isOptimizeTopNRowNumber; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.predicate.Marker.Bound.BELOW; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.ExpressionDomainTranslator.ExtractionResult; import static com.facebook.presto.sql.planner.ExpressionDomainTranslator.fromPredicate; import static com.facebook.presto.sql.planner.plan.ChildReplacer.replaceChildren; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java index a317a622f951b..4cdd116538085 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java @@ -14,6 +14,14 @@ package com.facebook.presto.sql.planner.planPrinter; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableMetadata; import com.facebook.presto.spi.CatalogSchemaTableName; @@ -27,14 +35,6 @@ import com.facebook.presto.spi.predicate.Marker; import com.facebook.presto.spi.predicate.Marker.Bound; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.planner.plan.InternalPlanVisitor; import com.facebook.presto.sql.planner.plan.TableFinishNode; import com.facebook.presto.sql.planner.plan.TableWriterNode.WriterTarget; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java index 10067a5d49f97..75cb329e6cbf3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.planPrinter; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.PlanCostEstimate; import com.facebook.presto.cost.PlanNodeStatsEstimate; import com.facebook.presto.cost.StatsAndCosts; @@ -50,7 +51,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.planner.Partitioning; import com.facebook.presto.sql.planner.PartitioningScheme; @@ -114,9 +114,9 @@ import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.StageInfo.getAllStages; import static com.facebook.presto.metadata.CastType.CAST; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.planPrinter.PlanNodeStatsSummarizer.aggregateStageStats; import static com.facebook.presto.sql.planner.planPrinter.TextRenderer.formatDouble; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/RowExpressionFormatter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/RowExpressionFormatter.java index 11357fcde1a77..69cd5de2ab476 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/RowExpressionFormatter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/RowExpressionFormatter.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.sql.planner.planPrinter; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.CallExpression; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.LiteralInterpreter; import com.facebook.presto.sql.relational.FunctionResolution; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/sanity/TypeValidator.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/sanity/TypeValidator.java index 213de355ea017..1d0e081aaeb20 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/sanity/TypeValidator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/sanity/TypeValidator.java @@ -14,6 +14,9 @@ package com.facebook.presto.sql.planner.sanity; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; @@ -26,9 +29,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.SimplePlanVisitor; import com.facebook.presto.sql.planner.TypeProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/Expressions.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/Expressions.java index 44d4fae418aa7..d12877b3701aa 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/Expressions.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/Expressions.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.SpecialFormExpression.Form; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java index dbdf4e86e67dd..2770e783fad95 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/FunctionResolution.java @@ -15,11 +15,11 @@ import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.StandardFunctionResolution; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.tree.ArithmeticBinaryExpression; import com.facebook.presto.sql.tree.ComparisonExpression; import com.google.common.collect.ImmutableList; @@ -42,9 +42,9 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.tree.ArrayConstructor.ARRAY_CONSTRUCTOR; import static com.facebook.presto.type.LikePatternType.LIKE_PATTERN; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/OriginalExpressionUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/OriginalExpressionUtils.java index c676c269efd50..1af90a4dcc840 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/OriginalExpressionUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/OriginalExpressionUtils.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.SymbolReference; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java index 848c36536bdd2..a7937b466308a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java @@ -13,13 +13,15 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.OperatorNotFoundException; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.StandardFunctionResolution; @@ -31,7 +33,6 @@ import com.facebook.presto.spi.predicate.Ranges; import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.Utils; import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; @@ -44,7 +45,6 @@ import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.SpecialFormExpression.Form; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.planner.RowExpressionInterpreter; import com.google.common.collect.ImmutableList; @@ -67,6 +67,7 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; @@ -78,7 +79,6 @@ import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.LiteralEncoder.toRowExpression; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlFunctionUtils.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlFunctionUtils.java index 73e79f4f75004..73d31ea245d6b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlFunctionUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlFunctionUtils.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.sql.relational; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.expressions.RowExpressionRewriter; import com.facebook.presto.expressions.RowExpressionTreeRewriter; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionMetadata; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlInvokedScalarFunctionImplementation; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.ExpressionAnalysis; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java index 2233dd9b944e3..4d961ff1981f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/SqlToRowExpressionTranslator.java @@ -14,21 +14,21 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.Session; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalParseResult; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression.Form; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalParseResult; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; @@ -93,6 +93,19 @@ import static com.facebook.presto.common.function.OperatorType.BETWEEN; import static com.facebook.presto.common.function.OperatorType.NEGATION; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.TRY_CAST; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; @@ -108,19 +121,6 @@ import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.ROW_CONSTRUCTOR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.SWITCH; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.WHEN; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeInputRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeInputRewrite.java index d8d3eb9f82661..8613b259d9da1 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeInputRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeInputRewrite.java @@ -14,10 +14,10 @@ package com.facebook.presto.sql.rewrite; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.analyzer.QueryExplainer; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeOutputRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeOutputRewrite.java index c359abce76611..3c71ff93255d8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeOutputRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/DescribeOutputRewrite.java @@ -14,11 +14,11 @@ package com.facebook.presto.sql.rewrite; import com.facebook.presto.Session; +import com.facebook.presto.common.type.FixedWidthType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.security.AccessControl; -import com.facebook.presto.spi.type.FixedWidthType; import com.facebook.presto.sql.analyzer.Analysis; import com.facebook.presto.sql.analyzer.Analyzer; import com.facebook.presto.sql.analyzer.Field; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java index b9641989e4322..1c3940b1812b1 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowQueriesRewrite.java @@ -16,6 +16,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.PrincipalType; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.QueryExplainer; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.parser.ParsingException; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowStatsRewrite.java b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowStatsRewrite.java index 587e43a4d1313..3cac2f6a57f70 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowStatsRewrite.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/rewrite/ShowStatsRewrite.java @@ -14,6 +14,14 @@ package com.facebook.presto.sql.rewrite; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; @@ -29,14 +37,6 @@ import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.QueryUtil; import com.facebook.presto.sql.analyzer.QueryExplainer; import com.facebook.presto.sql.analyzer.SemanticException; @@ -71,10 +71,10 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.metadata.MetadataUtil.createQualifiedObjectName; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.facebook.presto.sql.QueryUtil.aliased; import static com.facebook.presto.sql.QueryUtil.selectAll; import static com.facebook.presto.sql.QueryUtil.simpleQuery; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/AggregationTestUtils.java b/presto-main/src/main/java/com/facebook/presto/testing/AggregationTestUtils.java index 614738bce1641..61c5b495646ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/AggregationTestUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/AggregationTestUtils.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.TypeRegistry; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/DateTimeTestingUtils.java b/presto-main/src/main/java/com/facebook/presto/testing/DateTimeTestingUtils.java index 3ed1e55d567bd..9cec4fbdf72ee 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/DateTimeTestingUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/DateTimeTestingUtils.java @@ -14,11 +14,11 @@ package com.facebook.presto.testing; import com.facebook.presto.Session; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java b/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java index 015cc8d9423c4..c6c80c6f9c3e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/LocalQueryRunner.java @@ -19,6 +19,8 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.ConnectorManager; import com.facebook.presto.connector.system.AnalyzePropertiesSystemTable; import com.facebook.presto.connector.system.CatalogSystemTable; @@ -112,14 +114,12 @@ import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.Plugin; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.connector.ConnectorFactory; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.FileSingleStreamSpillerFactory; import com.facebook.presto.spiller.GenericPartitioningSpillerFactory; import com.facebook.presto.spiller.GenericSpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java b/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java index 3a9c1e928f2be..bb02bcb64ef85 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java @@ -14,26 +14,26 @@ package com.facebook.presto.testing; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoWarning; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -59,22 +59,22 @@ import java.util.Set; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java index 1f4c670e9145c..997d53772d733 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java b/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java index 41a4708f408f4..dc32390f124c3 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorContext.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorContext.java index 7069870e93a96..223487548c193 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorContext.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorContext.java @@ -16,6 +16,8 @@ import com.facebook.presto.GroupByHashPageIndexerFactory; import com.facebook.presto.PagesIndexPageSorter; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.ConnectorAwareNodeManager; import com.facebook.presto.cost.ConnectorFilterStatsCalculatorService; import com.facebook.presto.cost.FilterStatsCalculator; @@ -31,7 +33,6 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; @@ -42,7 +43,6 @@ import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.sql.gen.RowExpressionPredicateCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorSession.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorSession.java index 3cd6ccee3759d..2043edb1530e8 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorSession.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingConnectorSession.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.execution.QueryIdGenerator; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.security.ConnectorIdentity; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -30,8 +30,8 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SESSION_PROPERTY; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingEnvironment.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingEnvironment.java index 4c8a41d740d0b..e80344d4e9f07 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingEnvironment.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingEnvironment.java @@ -14,8 +14,8 @@ package com.facebook.presto.testing; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java index 11b1d6dd41933..ed3d3f023d256 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorInsertTableHandle; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingSession.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingSession.java index ba94a88c3957e..35d5af930febf 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingSession.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingSession.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.Session.SessionBuilder; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.connector.system.StaticSystemTablesProvider; import com.facebook.presto.connector.system.SystemTablesMetadata; import com.facebook.presto.execution.QueryIdGenerator; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.security.Identity; import com.facebook.presto.spi.transaction.IsolationLevel; -import com.facebook.presto.spi.type.TimeZoneKey; import com.google.common.collect.ImmutableSet; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/type/ArrayParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/ArrayParametricType.java index 6f29a974ba0d9..bc5cf40085ed7 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/ArrayParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/ArrayParametricType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java index 859ee6e8bfc39..c1a156d1d82e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/BigintOperators.java @@ -13,8 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.primitives.Ints; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; @@ -49,9 +49,9 @@ import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java b/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java index fecf2d7ad3d85..bd01787935fff 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/BooleanOperators.java @@ -13,7 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -37,8 +37,8 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static java.lang.Float.floatToRawIntBits; import static java.nio.charset.StandardCharsets.US_ASCII; diff --git a/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java b/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java index 1da51e5f147c1..b2767e021002a 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/CharOperators.java @@ -13,7 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; @@ -36,7 +36,7 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; -import static com.facebook.presto.spi.type.Chars.compareChars; +import static com.facebook.presto.common.type.Chars.compareChars; public final class CharOperators { diff --git a/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java index fc489d55f6105..dd0b233703b02 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import java.util.List; -import static com.facebook.presto.spi.type.CharType.createCharType; +import static com.facebook.presto.common.type.CharType.createCharType; public class CharParametricType implements ParametricType diff --git a/presto-main/src/main/java/com/facebook/presto/type/CodePointsType.java b/presto-main/src/main/java/com/facebook/presto/type/CodePointsType.java index d26311de09a36..662c77dc24c02 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/CodePointsType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/CodePointsType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.TypeSignature; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java b/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java index 9b55a4a0a61fe..2ef588464f271 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/ColorOperators.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; diff --git a/presto-main/src/main/java/com/facebook/presto/type/ColorType.java b/presto-main/src/main/java/com/facebook/presto/type/ColorType.java index 5ade3ae5c5c40..f58197bfe270a 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/ColorType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/ColorType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.scalar.ColorFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.TypeSignature; public class ColorType extends AbstractIntType diff --git a/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java index ac8f68754ea3e..eee62ef5f3474 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DateOperators.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; @@ -44,9 +44,9 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; import static com.facebook.presto.util.DateTimeUtils.parseDate; import static com.facebook.presto.util.DateTimeUtils.printDate; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java index ffedafb9cbcf7..d3d2da2c18624 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DateTimeOperators.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.joda.time.DateTimeField; import org.joda.time.chrono.ISOChronology; @@ -25,9 +25,9 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.updateMillisUtc; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.updateMillisUtc; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; import static com.facebook.presto.util.DateTimeZoneIndex.unpackChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java index 5b161db65d5e0..7cb6ce5bd01ef 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalCasts.java @@ -14,15 +14,15 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.SignatureBuilder; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.util.JsonCastException; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; @@ -39,31 +39,31 @@ import java.math.BigInteger; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Decimals.bigIntegerTenToNth; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.Decimals.longTenToNth; +import static com.facebook.presto.common.type.Decimals.overflows; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.compareAbsolute; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.multiply; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.overflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLongUnsafe; import static com.facebook.presto.operator.scalar.JsonOperators.JSON_FACTORY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Decimals.bigIntegerTenToNth; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.Decimals.longTenToNth; -import static com.facebook.presto.spi.type.Decimals.overflows; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compareAbsolute; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.multiply; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.overflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLongUnsafe; import static com.facebook.presto.util.Failures.checkCondition; import static com.facebook.presto.util.JsonUtil.createJsonGenerator; import static com.facebook.presto.util.JsonUtil.createJsonParser; @@ -136,20 +136,20 @@ private static SqlScalarFunction castFunctionFromDecimalTo(TypeSignature to, Str .signature(signature) .deterministic(true) .choice(choice -> choice - .implementation(methodsGroup -> methodsGroup - .methods(methodNames) - .withExtraParameters((context) -> { - long precision = context.getLiteral("precision"); - long scale = context.getLiteral("scale"); - Number tenToScale; - if (isShortDecimal(context.getParameterTypes().get(0))) { - tenToScale = longTenToNth(intScale(scale)); - } - else { - tenToScale = bigIntegerTenToNth(intScale(scale)); - } - return ImmutableList.of(precision, scale, tenToScale); - }))) + .implementation(methodsGroup -> methodsGroup + .methods(methodNames) + .withExtraParameters((context) -> { + long precision = context.getLiteral("precision"); + long scale = context.getLiteral("scale"); + Number tenToScale; + if (isShortDecimal(context.getParameterTypes().get(0))) { + tenToScale = longTenToNth(intScale(scale)); + } + else { + tenToScale = bigIntegerTenToNth(intScale(scale)); + } + return ImmutableList.of(precision, scale, tenToScale); + }))) .build(); } @@ -172,18 +172,18 @@ private static SqlScalarFunction castFunctionToDecimalFromBuilder(TypeSignature .choice(choice -> choice .nullableResult(nullableResult) .implementation(methodsGroup -> methodsGroup - .methods(methodNames) - .withExtraParameters((context) -> { - DecimalType resultType = (DecimalType) context.getReturnType(); - Number tenToScale; - if (isShortDecimal(resultType)) { - tenToScale = longTenToNth(resultType.getScale()); - } - else { - tenToScale = bigIntegerTenToNth(resultType.getScale()); - } - return ImmutableList.of(resultType.getPrecision(), resultType.getScale(), tenToScale); - }))).build(); + .methods(methodNames) + .withExtraParameters((context) -> { + DecimalType resultType = (DecimalType) context.getReturnType(); + Number tenToScale; + if (isShortDecimal(resultType)) { + tenToScale = longTenToNth(resultType.getScale()); + } + else { + tenToScale = bigIntegerTenToNth(resultType.getScale()); + } + return ImmutableList.of(resultType.getPrecision(), resultType.getScale(), tenToScale); + }))).build(); } private DecimalCasts() {} diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java index 5173a8170f0d8..63696ef61fd31 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalInequalityOperators.java @@ -14,15 +14,15 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder; import com.facebook.presto.metadata.SignatureBuilder; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; @@ -37,15 +37,15 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.compare; import static com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.constant; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.BLOCK_AND_POSITION; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compare; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Throwables.throwIfInstanceOf; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java index 81ef027756554..01e17ea6cb1b1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalOperators.java @@ -14,6 +14,11 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder; import com.facebook.presto.metadata.PolymorphicScalarFunctionBuilder.SpecializeContext; import com.facebook.presto.metadata.SignatureBuilder; @@ -24,11 +29,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; @@ -46,20 +46,20 @@ import static com.facebook.presto.common.function.OperatorType.NEGATION; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.longTenToNth; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.divideRoundUp; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.isZero; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.remainder; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.throwIfOverflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.longVariableExpression; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.longTenToNth; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.divideRoundUp; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.isZero; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.remainder; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.throwIfOverflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLong; import static java.lang.Integer.max; import static java.lang.Long.signum; import static java.lang.Math.abs; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java index 276ab109f7163..33187e3ba5ccd 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java index 1278caaf32813..268082c9776cb 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalSaturatedFloorCasts.java @@ -14,9 +14,9 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.SignatureBuilder; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; @@ -25,15 +25,15 @@ import java.math.BigInteger; import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.Decimals.bigIntegerTenToNth; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.Decimals.bigIntegerTenToNth; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.lang.Math.toIntExact; import static java.math.BigInteger.ONE; import static java.math.RoundingMode.FLOOR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java index 04459201a1efc..2852780d64f08 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalToDecimalCasts.java @@ -14,30 +14,30 @@ package com.facebook.presto.type; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; import com.facebook.presto.metadata.SignatureBuilder; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.math.BigInteger; import static com.facebook.presto.common.function.OperatorType.CAST; +import static com.facebook.presto.common.type.Decimals.longTenToNth; +import static com.facebook.presto.common.type.Decimals.overflows; +import static com.facebook.presto.common.type.StandardTypes.DECIMAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.overflows; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLongUnsafe; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.Decimals.longTenToNth; -import static com.facebook.presto.spi.type.Decimals.overflows; -import static com.facebook.presto.spi.type.StandardTypes.DECIMAL; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.overflows; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToUnscaledLongUnsafe; import static java.lang.String.format; public final class DecimalToDecimalCasts diff --git a/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java b/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java index cbf2bd5244802..699c5d93e3a25 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DoubleOperators.java @@ -13,9 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.scalar.MathFunctions; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -23,8 +25,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.math.DoubleMath; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; @@ -50,10 +50,10 @@ import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Double.doubleToLongBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/FunctionParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/FunctionParametricType.java index 2786191eaff3b..4b196573b14f1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/FunctionParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/FunctionParametricType.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import java.util.List; -import static com.facebook.presto.spi.type.FunctionType.NAME; +import static com.facebook.presto.common.type.FunctionType.NAME; import static com.google.common.base.Preconditions.checkArgument; import static java.util.stream.Collectors.toList; diff --git a/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java b/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java index 775c0dfdd222e..74c50da8abab2 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/HyperLogLogOperators.java @@ -14,9 +14,9 @@ package com.facebook.presto.type; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java index 606943a231a39..11be4c463d35f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntegerOperators.java @@ -13,8 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; import io.airlift.slice.Slice; @@ -48,9 +48,9 @@ import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java index f17e7535303e5..15c92d2be7867 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeOperators.java @@ -13,7 +13,9 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.client.IntervalDayTime.formatMillis; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeType.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeType.java index a09807fcd7f43..8c5cf96446b24 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalDayTimeType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class IntervalDayTimeType extends AbstractLongType diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java index bb885ee859d8e..7dbd1b197a6ff 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthOperators.java @@ -14,7 +14,9 @@ package com.facebook.presto.type; import com.facebook.presto.client.IntervalYearMonth; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.ADD; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthType.java b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthType.java index 0873f4d917646..1adf53ffa4459 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IntervalYearMonthType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.StandardTypes; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class IntervalYearMonthType extends AbstractIntType diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java index cbfab9dcfe7c1..5d68bb96e5195 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpAddressOperators.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpAddressType.java b/presto-main/src/main/java/com/facebook/presto/type/IpAddressType.java index 3e5523478f0df..811f241456c8c 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpAddressType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpAddressType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.Int128ArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.Int128ArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -30,8 +30,8 @@ import java.net.InetAddress; import java.net.UnknownHostException; -import static com.facebook.presto.spi.block.Int128ArrayBlock.INT128_BYTES; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.block.Int128ArrayBlock.INT128_BYTES; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; public class IpAddressType diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java index 52302b22b8b97..44f23753ea08e 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixOperators.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; diff --git a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixType.java b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixType.java index f1183ef398c53..4567f18cf502c 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/IpPrefixType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/IpPrefixType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; @@ -29,7 +29,7 @@ import java.net.InetAddress; import java.net.UnknownHostException; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class IpPrefixType extends AbstractType diff --git a/presto-main/src/main/java/com/facebook/presto/type/JoniRegexpType.java b/presto-main/src/main/java/com/facebook/presto/type/JoniRegexpType.java index c523a2467d404..c69698a211c80 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/JoniRegexpType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/JoniRegexpType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.TypeSignature; import io.airlift.joni.Regex; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/JsonPathType.java b/presto-main/src/main/java/com/facebook/presto/type/JsonPathType.java index c86818776ade7..2faad694c6667 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/JsonPathType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/JsonPathType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.scalar.JsonPath; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.TypeSignature; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java b/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java index 1965a86bef919..84c01c5b7327d 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/type/LikeFunctions.java @@ -14,12 +14,12 @@ package com.facebook.presto.type; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.jcodings.specific.NonStrictUTF8Encoding; import io.airlift.joni.Matcher; import io.airlift.joni.Option; @@ -28,9 +28,9 @@ import io.airlift.slice.Slice; import io.airlift.slice.Slices; +import static com.facebook.presto.common.type.Chars.padSpaces; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.Chars.padSpaces; import static com.facebook.presto.util.Failures.checkCondition; import static io.airlift.joni.constants.MetaChar.INEFFECTIVE_META_CHAR; import static io.airlift.joni.constants.SyntaxProperties.OP_ASTERISK_ZERO_INF; diff --git a/presto-main/src/main/java/com/facebook/presto/type/LikePatternType.java b/presto-main/src/main/java/com/facebook/presto/type/LikePatternType.java index 39b1fa812ef50..491bc113ec612 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/LikePatternType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/LikePatternType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.TypeSignature; import io.airlift.joni.Regex; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java index 3c5b49fad9e3c..22e3b02e93264 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/MapParametricType.java @@ -14,20 +14,20 @@ package com.facebook.presto.type; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.List; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; import static com.google.common.base.Preconditions.checkArgument; public final class MapParametricType diff --git a/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java index 1beef2bcd82c8..593a78456de4f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/QuantileDigestOperators.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; diff --git a/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexp.java b/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexp.java index 7c83185143d5b..6123ca978cfaa 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexp.java +++ b/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexp.java @@ -14,16 +14,16 @@ package com.facebook.presto.type; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.re2j.Matcher; import com.google.re2j.Options; import com.google.re2j.Pattern; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkState; import static com.google.re2j.Options.Algorithm.DFA_FALLBACK_TO_NFA; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexpType.java b/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexpType.java index 2b5de88b24e6b..33f5382d7b8d5 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexpType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/Re2JRegexpType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.TypeSignature; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; diff --git a/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java b/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java index 9d5b0f1296c42..cea219b065b90 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/RealOperators.java @@ -13,9 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.AbstractIntType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.scalar.MathFunctions; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -23,8 +25,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractIntType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.math.DoubleMath; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; @@ -50,8 +50,8 @@ import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.RealType.REAL; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToIntBits; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java index 92892f8fa6115..3a3768ee03f50 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java index 133db557f6978..c2f6237f27e05 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/SmallintOperators.java @@ -13,8 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.primitives.Shorts; import com.google.common.primitives.SignedBytes; import io.airlift.slice.Slice; @@ -48,9 +48,9 @@ import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java index cfca80457904f..91ce72050279d 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TDigestOperators.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java index a39799ac90877..06f26c047ad1f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimeOperators.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; @@ -42,9 +42,9 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimeType.TIME; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimeType.TIME; import static com.facebook.presto.util.DateTimeUtils.parseTimeWithoutTimeZone; import static com.facebook.presto.util.DateTimeUtils.printTimeWithoutTimeZone; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java index 3a382e22b7948..6426fa067f9fe 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimeWithTimeZoneOperators.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; @@ -45,9 +45,9 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; import static com.facebook.presto.util.DateTimeUtils.parseTimeWithTimeZone; import static com.facebook.presto.util.DateTimeUtils.printTimeWithTimeZone; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java index 1004051dedb7e..ba68a2ed2ba03 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimestampOperators.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; @@ -45,9 +45,9 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.facebook.presto.type.DateTimeOperators.modulo24Hour; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithoutTimeZone; import static com.facebook.presto.util.DateTimeUtils.printTimestampWithoutTimeZone; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java index f215ab7bd990f..746093bed20d0 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TimestampWithTimeZoneOperators.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; import org.joda.time.chrono.ISOChronology; @@ -45,11 +45,11 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.type.DateTimeOperators.modulo24Hour; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithTimeZone; import static com.facebook.presto.util.DateTimeUtils.printTimestampWithTimeZone; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java b/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java index 912fdcbc49696..3a70fbefa023c 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TinyintOperators.java @@ -13,8 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TinyintType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TinyintType; import com.google.common.primitives.SignedBytes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; @@ -46,9 +46,9 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; import static com.facebook.presto.common.function.OperatorType.XX_HASH_64; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static java.lang.String.format; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeDeserializer.java b/presto-main/src/main/java/com/facebook/presto/type/TypeDeserializer.java index 7d3bfcdb4adc7..5cf48f762ca70 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeDeserializer.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeDeserializer.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import javax.inject.Inject; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java b/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java index 39838a1ee1bf2..a2a0ff3259813 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeRegistry.java @@ -14,20 +14,20 @@ package com.facebook.presto.type; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.khyperloglog.KHyperLogLogType; import com.facebook.presto.type.setdigest.SetDigestType; @@ -52,29 +52,29 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.P4HyperLogLogType.P4_HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.QuantileDigestParametricType.QDIGEST; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.RowType.Field; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TDigestParametricType.TDIGEST; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.P4HyperLogLogType.P4_HYPER_LOG_LOG; +import static com.facebook.presto.common.type.QuantileDigestParametricType.QDIGEST; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.RowType.Field; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TDigestParametricType.TDIGEST; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.ArrayParametricType.ARRAY; import static com.facebook.presto.type.CodePointsType.CODE_POINTS; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java index 8dead5fcbe88e..8293a385dd280 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java @@ -13,26 +13,26 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.HashGenerator; import com.facebook.presto.operator.InterpretedHashGenerator; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import java.lang.invoke.MethodHandle; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Throwables.throwIfUnchecked; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java b/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java index 531a686e3147f..4adb1e5128698 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/UnknownOperators.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import static com.facebook.presto.common.function.OperatorType.BETWEEN; import static com.facebook.presto.common.function.OperatorType.EQUAL; diff --git a/presto-main/src/main/java/com/facebook/presto/type/UnknownType.java b/presto-main/src/main/java/com/facebook/presto/type/UnknownType.java index 0b860b2251eff..c49c5fc5addd4 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/UnknownType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/UnknownType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.ByteArrayBlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.ByteArrayBlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.TypeSignature; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java b/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java index 13438066fc7c7..50ad89ca7929f 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/VarbinaryOperators.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; diff --git a/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java b/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java index 8963e2320560c..6ef815882038b 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/VarcharOperators.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.IsNull; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; diff --git a/presto-main/src/main/java/com/facebook/presto/type/VarcharParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/VarcharParametricType.java index 64db709d8e482..432112affde52 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/VarcharParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/VarcharParametricType.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.common.type.VarcharType; import java.util.List; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; public class VarcharParametricType implements ParametricType diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogAggregationFunction.java index 4fac8a9521261..666e1d738d7be 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogAggregationFunction.java @@ -14,7 +14,8 @@ package com.facebook.presto.type.khyperloglog; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.XxHash64; diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogFunctions.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogFunctions.java index 9cadcb29e376c..5d907a6a74ca5 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogFunctions.java @@ -14,20 +14,20 @@ package com.facebook.presto.type.khyperloglog; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public final class KHyperLogLogFunctions { diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java index 7507c7d1fc369..fd647d5f61f56 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogOperators.java @@ -14,9 +14,9 @@ package com.facebook.presto.type.khyperloglog; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.common.function.OperatorType.CAST; diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogStateSerializer.java index 21824cb6f73cc..2cf44962e4ec7 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogStateSerializer.java @@ -14,10 +14,10 @@ package com.facebook.presto.type.khyperloglog; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.type.khyperloglog.KHyperLogLogType.K_HYPER_LOG_LOG; diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogType.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogType.java index 995d826ad9344..a37cd54eaf364 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/KHyperLogLogType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type.khyperloglog; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.SqlVarbinary; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class KHyperLogLogType extends AbstractVariableWidthType diff --git a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/MergeKHyperLogLogAggregationFunction.java b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/MergeKHyperLogLogAggregationFunction.java index b375244b428c7..c45e0bb0918b1 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/MergeKHyperLogLogAggregationFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/type/khyperloglog/MergeKHyperLogLogAggregationFunction.java @@ -14,7 +14,7 @@ package com.facebook.presto.type.khyperloglog; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/BuildSetDigestAggregation.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/BuildSetDigestAggregation.java index 64dd93610175c..5ea8cd69afd32 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/BuildSetDigestAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/BuildSetDigestAggregation.java @@ -14,13 +14,13 @@ package com.facebook.presto.type.setdigest; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; @AggregationFunction("make_set_digest") public final class BuildSetDigestAggregation diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/MergeSetDigestAggregation.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/MergeSetDigestAggregation.java index 9a776e64fdda3..d67de7dca8fe8 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/MergeSetDigestAggregation.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/MergeSetDigestAggregation.java @@ -14,7 +14,7 @@ package com.facebook.presto.type.setdigest; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestFunctions.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestFunctions.java index 5d977c346c056..bcb411563c0cb 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestFunctions.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestFunctions.java @@ -15,13 +15,13 @@ package com.facebook.presto.type.setdigest; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import io.airlift.slice.Slice; @@ -30,8 +30,8 @@ import java.io.UncheckedIOException; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; import static com.facebook.presto.type.setdigest.SetDigest.exactIntersectionCardinality; public final class SetDigestFunctions diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java index 5321ac3cde921..07aceaf0d531a 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestOperators.java @@ -14,9 +14,9 @@ package com.facebook.presto.type.setdigest; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestStateSerializer.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestStateSerializer.java index 3de548f8b5e9f..e84e7c1a42fce 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestStateSerializer.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestStateSerializer.java @@ -14,10 +14,10 @@ package com.facebook.presto.type.setdigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.type.setdigest.SetDigestType.SET_DIGEST; diff --git a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestType.java b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestType.java index 8b87c47b880cb..cb5b56ef9f9b9 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/setdigest/SetDigestType.java @@ -14,14 +14,14 @@ package com.facebook.presto.type.setdigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.SqlVarbinary; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; // Layout is :, where // size: is an int describing the length of the set digest bytes diff --git a/presto-main/src/main/java/com/facebook/presto/util/DateTimeUtils.java b/presto-main/src/main/java/com/facebook/presto/util/DateTimeUtils.java index d42417c08c065..e673e7e6b9969 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/DateTimeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/util/DateTimeUtils.java @@ -15,8 +15,8 @@ import com.facebook.presto.client.IntervalDayTime; import com.facebook.presto.client.IntervalYearMonth; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.tree.IntervalLiteral.IntervalField; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; @@ -46,8 +46,8 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Stream; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; import static com.facebook.presto.util.DateTimeZoneIndex.getChronology; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; import static com.facebook.presto.util.DateTimeZoneIndex.packDateTimeWithZone; diff --git a/presto-main/src/main/java/com/facebook/presto/util/DateTimeZoneIndex.java b/presto-main/src/main/java/com/facebook/presto/util/DateTimeZoneIndex.java index b742f3ef38ea8..d92c4a7620b97 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/DateTimeZoneIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/util/DateTimeZoneIndex.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.util; -import com.facebook.presto.spi.type.DateTimeEncoding; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.DateTimeEncoding; +import com.facebook.presto.common.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.joda.time.chrono.ISOChronology; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.MAX_TIME_ZONE_KEY; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeys; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.MAX_TIME_ZONE_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeys; public final class DateTimeZoneIndex { diff --git a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java index e95bd44520407..6285e4645fb67 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java +++ b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import it.unimi.dsi.fastutil.Hash; import it.unimi.dsi.fastutil.booleans.BooleanOpenHashSet; import it.unimi.dsi.fastutil.doubles.DoubleHash; diff --git a/presto-main/src/main/java/com/facebook/presto/util/GenerateTimeZoneIndex.java b/presto-main/src/main/java/com/facebook/presto/util/GenerateTimeZoneIndex.java index 820e433ae6920..103d3431cf40f 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/GenerateTimeZoneIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/util/GenerateTimeZoneIndex.java @@ -21,7 +21,7 @@ import java.util.TimeZone; import java.util.TreeSet; -import static com.facebook.presto.spi.type.TimeZoneKey.isUtcZoneId; +import static com.facebook.presto.common.type.TimeZoneKey.isUtcZoneId; import static com.google.common.base.Predicates.not; import static com.google.common.collect.Sets.filter; import static com.google.common.collect.Sets.intersection; diff --git a/presto-main/src/main/java/com/facebook/presto/util/JsonUtil.java b/presto-main/src/main/java/com/facebook/presto/util/JsonUtil.java index d9ad7cf484115..976f2cc73a916 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/JsonUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/util/JsonUtil.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SingleRowBlockWriter; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SingleRowBlockWriter; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.BigintOperators; import com.facebook.presto.type.BooleanOperators; import com.facebook.presto.type.DoubleOperators; @@ -55,22 +55,22 @@ import java.util.Optional; import java.util.TreeMap; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.facebook.presto.type.TypeUtils.hashPosition; import static com.facebook.presto.type.TypeUtils.positionEqualsPosition; import static com.facebook.presto.util.DateTimeUtils.printDate; diff --git a/presto-main/src/main/java/com/facebook/presto/util/LegacyRowFieldOrdinalAccessUtil.java b/presto-main/src/main/java/com/facebook/presto/util/LegacyRowFieldOrdinalAccessUtil.java index 99720756898a3..b912df59a2faf 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/LegacyRowFieldOrdinalAccessUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/util/LegacyRowFieldOrdinalAccessUtil.java @@ -14,7 +14,7 @@ package com.facebook.presto.util; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.type.RowType; import java.util.List; import java.util.OptionalInt; diff --git a/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java b/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java index 50fd4387ea253..dac3af75f26e1 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java +++ b/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.DriverYieldSignal; @@ -22,8 +24,6 @@ import com.facebook.presto.operator.WorkProcessor.TransformationState; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import java.util.Comparator; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java b/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java index f220236f5b55d..b1776d9e8cd54 100644 --- a/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java +++ b/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java @@ -14,12 +14,12 @@ package com.facebook.presto; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.type.Type; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; import org.openjdk.jmh.annotations.Measurement; @@ -39,11 +39,11 @@ import java.util.List; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.util.Collections.nCopies; @State(Scope.Thread) diff --git a/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java b/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java index 958556962ada7..49e1640f8d0f2 100644 --- a/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java b/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java index cadde8c5ae888..6fe74902c8323 100644 --- a/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java b/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java index 8d1843202d4f0..5f3ca7c851c32 100644 --- a/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java @@ -14,23 +14,23 @@ package com.facebook.presto; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public final class SequencePageBuilder { diff --git a/presto-main/src/test/java/com/facebook/presto/TestHiddenColumns.java b/presto-main/src/test/java/com/facebook/presto/TestHiddenColumns.java index 5bc9cc6b0065d..c084b44dc0625 100644 --- a/presto-main/src/test/java/com/facebook/presto/TestHiddenColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/TestHiddenColumns.java @@ -22,7 +22,7 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.assertions.Assert.assertEquals; public class TestHiddenColumns diff --git a/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java b/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java index 2eb523c72472e..39962895f5d90 100644 --- a/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java +++ b/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -27,11 +27,11 @@ import java.util.List; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestPagesIndexPageSorter diff --git a/presto-main/src/test/java/com/facebook/presto/block/AbstractTestBlock.java b/presto-main/src/test/java/com/facebook/presto/block/AbstractTestBlock.java index 6c295ce884ca3..fad3c5e13c7f9 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/AbstractTestBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/AbstractTestBlock.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.block.AbstractMapBlock.HashTables; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.DictionaryId; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.AbstractMapBlock.HashTables; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.DictionaryId; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -41,9 +41,9 @@ import java.util.UUID; import java.util.function.Supplier; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.SizeOf.SIZE_OF_BYTE; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; diff --git a/presto-main/src/test/java/com/facebook/presto/block/BenchmarkMapCopy.java b/presto-main/src/test/java/com/facebook/presto/block/BenchmarkMapCopy.java index 3d88fafbe8481..59fa2132fd947 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/BenchmarkMapCopy.java +++ b/presto-main/src/test/java/com/facebook/presto/block/BenchmarkMapCopy.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.type.MapType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.type.MapType; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; @@ -37,8 +37,8 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapType; @SuppressWarnings("MethodMayBeStatic") diff --git a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java index 7acf69e30f2e0..7820334b95927 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/block/BlockAssertions.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -41,25 +41,25 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import static com.facebook.presto.spi.block.ArrayBlock.fromElementBlock; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.block.RowBlock.fromFieldBlocks; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.writeBigDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.ArrayBlock.fromElementBlock; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.block.RowBlock.fromFieldBlocks; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.writeBigDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static com.facebook.presto.util.StructuralTestUtil.appendToBlockBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/block/ColumnarTestUtils.java b/presto-main/src/test/java/com/facebook/presto/block/ColumnarTestUtils.java index b9ed3026f0da5..ba75dcc4c02c8 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/ColumnarTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/block/ColumnarTestUtils.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import io.airlift.slice.DynamicSliceOutput; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestArrayBlock.java index aad293d70a895..9b711ab08df9a 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestArrayBlock.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.ArrayBlockBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlock; +import com.facebook.presto.common.block.ArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlock; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -24,9 +24,9 @@ import java.util.Optional; import java.util.Random; -import static com.facebook.presto.spi.block.ArrayBlock.fromElementBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.ArrayBlock.fromElementBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java b/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java index b8677a7911b0e..208f5b565605d 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -26,8 +26,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestByteArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestByteArrayBlock.java index 58db495606a4d..4cab09bf12267 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestByteArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestByteArrayBlock.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.ByteArrayBlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.ByteArrayBlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarArray.java b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarArray.java index 0641cb9e87c06..466487c0598a0 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarArray.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarArray.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.ArrayBlockBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.ArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -33,8 +33,8 @@ import static com.facebook.presto.block.ColumnarTestUtils.createTestDictionaryExpectedValues; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleBlock; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleExpectedValues; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestColumnarArray diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarMap.java b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarMap.java index 71438836fc9ae..501a726ee90e5 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarMap.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarMap.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.MapBlockBuilder; -import com.facebook.presto.spi.block.MethodHandleUtil; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.MapBlockBuilder; +import com.facebook.presto.common.block.MethodHandleUtil; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -35,10 +35,10 @@ import static com.facebook.presto.block.ColumnarTestUtils.createTestDictionaryExpectedValues; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleBlock; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleExpectedValues; -import static com.facebook.presto.spi.block.ColumnarMap.toColumnarMap; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.ColumnarMap.toColumnarMap; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarRow.java b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarRow.java index fda935144a5d3..2075c9b82c96f 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestColumnarRow.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestColumnarRow.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockBuilderStatus; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilderStatus; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -35,8 +35,8 @@ import static com.facebook.presto.block.ColumnarTestUtils.createTestDictionaryExpectedValues; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleBlock; import static com.facebook.presto.block.ColumnarTestUtils.createTestRleExpectedValues; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestColumnarRow diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestDictionaryBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestDictionaryBlock.java index 397222e6394b0..1784f122885d8 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestDictionaryBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestDictionaryBlock.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestInt128ArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestInt128ArrayBlock.java index a87c02f7f7b07..c1b71253d15aa 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestInt128ArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestInt128ArrayBlock.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.Int128ArrayBlock; -import com.facebook.presto.spi.block.Int128ArrayBlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.Int128ArrayBlock; +import com.facebook.presto.common.block.Int128ArrayBlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; import java.util.Optional; -import static com.facebook.presto.spi.block.Int128ArrayBlock.INT128_BYTES; +import static com.facebook.presto.common.block.Int128ArrayBlock.INT128_BYTES; import static com.facebook.presto.type.DecimalInequalityOperators.distinctBlockPositionLongLong; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestIntArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestIntArrayBlock.java index 20d7337ae4b9e..d8befa0c9e442 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestIntArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestIntArrayBlock.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.block.IntArrayBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestLongArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestLongArrayBlock.java index dce2a94ed9a45..60f936d36ca7c 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestLongArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestLongArrayBlock.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestMapBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestMapBlock.java index 03b7922d631d1..242f126ccdf39 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestMapBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestMapBlock.java @@ -14,15 +14,15 @@ package com.facebook.presto.block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.MapBlock; +import com.facebook.presto.common.block.MapBlockBuilder; +import com.facebook.presto.common.block.SingleMapBlock; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.MapBlock; -import com.facebook.presto.spi.block.MapBlockBuilder; -import com.facebook.presto.spi.block.SingleMapBlock; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import org.testng.annotations.Test; @@ -36,9 +36,9 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java index b950f8fb783b0..98c8387998bc7 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestRowBasedSerialization.java @@ -14,15 +14,15 @@ package com.facebook.presto.block; import com.facebook.presto.block.BlockAssertions.Encoding; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -54,9 +54,9 @@ import static com.facebook.presto.block.BlockAssertions.createStringArraysBlock; import static com.facebook.presto.block.BlockAssertions.createStringSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestngUtils.toDataProvider; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestRowBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestRowBlock.java index bb23980dc445c..50439c3754446 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestRowBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestRowBlock.java @@ -14,12 +14,12 @@ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.block.SingleRowBlock; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.block.SingleRowBlock; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.ints.IntArrayList; import org.testng.annotations.Test; @@ -29,9 +29,9 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.block.RowBlock.fromFieldBlocks; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.RowBlock.fromFieldBlocks; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestRunLengthEncodedBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestRunLengthEncodedBlock.java index 5805e1ffb5e16..4abac99d4f471 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestRunLengthEncodedBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestRunLengthEncodedBlock.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlockBuilder; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.block.RunLengthBlockEncoding; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.ShortArrayBlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlockBuilder; +import com.facebook.presto.common.block.IntArrayBlockBuilder; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.RunLengthBlockEncoding; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.ShortArrayBlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestShortArrayBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestShortArrayBlock.java index cb8b145e04e7e..2e4c5d3b83886 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestShortArrayBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestShortArrayBlock.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ShortArrayBlock; -import com.facebook.presto.spi.block.ShortArrayBlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ShortArrayBlock; +import com.facebook.presto.common.block.ShortArrayBlockBuilder; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestVariableWidthBlock.java b/presto-main/src/test/java/com/facebook/presto/block/TestVariableWidthBlock.java index 4e8f3f334bc0d..320a3eee29cab 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestVariableWidthBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestVariableWidthBlock.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.block; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlock; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.type.VarcharType; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -26,7 +26,7 @@ import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static io.airlift.slice.Slices.EMPTY_SLICE; import static java.lang.String.format; import static java.util.Arrays.copyOfRange; diff --git a/presto-main/src/test/java/com/facebook/presto/connector/MockConnectorFactory.java b/presto-main/src/test/java/com/facebook/presto/connector/MockConnectorFactory.java index 3dba03c08a61a..7e6274574c29d 100644 --- a/presto-main/src/test/java/com/facebook/presto/connector/MockConnectorFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/connector/MockConnectorFactory.java @@ -49,7 +49,7 @@ import java.util.function.Function; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/PlanNodeStatsAssertion.java b/presto-main/src/test/java/com/facebook/presto/cost/PlanNodeStatsAssertion.java index eb13b10fe1571..c2012efec8ea9 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/PlanNodeStatsAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/PlanNodeStatsAssertion.java @@ -18,8 +18,8 @@ import java.util.function.Consumer; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.cost.EstimateAssertion.assertEstimateEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.collect.Sets.union; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestAggregationStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestAggregationStatsRule.java index 8d06cda2b6b70..30398c5ea85af 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestAggregationStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestAggregationStatsRule.java @@ -19,7 +19,7 @@ import java.util.function.Consumer; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; public class TestAggregationStatsRule diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestComparisonStatsCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestComparisonStatsCalculator.java index c9684aa73964f..c694bb11f19e4 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestComparisonStatsCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestComparisonStatsCalculator.java @@ -14,10 +14,10 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.tree.Cast; import com.facebook.presto.sql.tree.ComparisonExpression; @@ -36,7 +36,7 @@ import java.util.Objects; import java.util.function.Consumer; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.EQUAL; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.LESS_THAN; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java index 4887176e6dd8f..4ac38022f2430 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java @@ -14,6 +14,7 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.NodeTaskMap; import com.facebook.presto.execution.QueryManagerConfig; import com.facebook.presto.execution.scheduler.LegacyNetworkTopology; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.NodePartitioningManager; @@ -75,10 +75,10 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; import static com.facebook.presto.sql.planner.optimizations.AggregationNodeUtils.count; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Scope.LOCAL; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestExchangeStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestExchangeStatsRule.java index 12e52df096e6c..67dd849c0f7d6 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestExchangeStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestExchangeStatsRule.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.util.Collections.emptyList; public class TestExchangeStatsRule diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsCalculator.java index 173f7bbda0633..ad8977e74ef65 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsCalculator.java @@ -14,10 +14,10 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.tree.Expression; @@ -25,7 +25,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.lang.Double.NEGATIVE_INFINITY; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsRule.java index 646e53a30bc55..a448850f393a3 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestFilterStatsRule.java @@ -19,7 +19,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java index dfe3269fb1534..a1da483f2f27e 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestIntersectStatsRule.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableListMultimap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestIntersectStatsRule extends BaseStatsCalculatorTest diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestJoinStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestJoinStatsRule.java index 7bd1a44e1ff92..6e6aaa3d250e4 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestJoinStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestJoinStatsRule.java @@ -25,11 +25,11 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.cost.FilterStatsCalculator.UNKNOWN_FILTER_COEFFICIENT; import static com.facebook.presto.cost.PlanNodeStatsAssertion.assertThat; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.FULL; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.INNER; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.LEFT; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestOutputNodeStats.java b/presto-main/src/test/java/com/facebook/presto/cost/TestOutputNodeStats.java index a728a95bef5e8..7808bdf9c7621 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestOutputNodeStats.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestOutputNodeStats.java @@ -16,8 +16,8 @@ import com.facebook.presto.spi.relation.VariableReferenceExpression; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static java.lang.Double.POSITIVE_INFINITY; public class TestOutputNodeStats diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestPlanNodeStatsEstimateMath.java b/presto-main/src/test/java/com/facebook/presto/cost/TestPlanNodeStatsEstimateMath.java index 1ebdd2a0e662a..279978dac45b2 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestPlanNodeStatsEstimateMath.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestPlanNodeStatsEstimateMath.java @@ -16,11 +16,11 @@ import com.facebook.presto.spi.relation.VariableReferenceExpression; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.addStatsAndMaxDistinctValues; import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.addStatsAndSumDistinctValues; import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.capStats; import static com.facebook.presto.cost.PlanNodeStatsEstimateMath.subtractSubsetStats; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static java.lang.Double.NEGATIVE_INFINITY; import static java.lang.Double.NaN; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestRowNumberStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestRowNumberStatsRule.java index 286b973565bd2..f95449077aee8 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestRowNumberStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestRowNumberStatsRule.java @@ -19,7 +19,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestRowNumberStatsRule extends BaseStatsCalculatorTest diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestSampleStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestSampleStatsRule.java index 5c2600420b4d9..e324187f562ce 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestSampleStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestSampleStatsRule.java @@ -18,7 +18,7 @@ import com.facebook.presto.sql.planner.plan.SampleNode; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestSampleStatsRule extends BaseStatsCalculatorTest diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestScalarStatsCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestScalarStatsCalculator.java index 6fb3918b6c209..28263fcc65fe8 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestScalarStatsCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestScalarStatsCalculator.java @@ -14,10 +14,10 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.LiteralEncoder; @@ -40,11 +40,11 @@ import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.lang.Double.NEGATIVE_INFINITY; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsCalculator.java index 21fc1d7535603..3a843d49263cd 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsCalculator.java @@ -18,10 +18,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.cost.PlanNodeStatsAssertion.assertThat; import static com.facebook.presto.cost.SemiJoinStatsCalculator.computeAntiJoin; import static com.facebook.presto.cost.SemiJoinStatsCalculator.computeSemiJoin; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static java.lang.Double.NEGATIVE_INFINITY; import static java.lang.Double.NaN; import static java.lang.Double.POSITIVE_INFINITY; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsRule.java index 30791ef8e4482..5712bcaef83b4 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestSemiJoinStatsRule.java @@ -18,8 +18,8 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestSemiJoinStatsRule extends BaseStatsCalculatorTest diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestSimpleFilterProjectSemiJoinStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestSimpleFilterProjectSemiJoinStatsRule.java index 05a90726b8b74..6e404127d72e5 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestSimpleFilterProjectSemiJoinStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestSimpleFilterProjectSemiJoinStatsRule.java @@ -25,8 +25,8 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.sql.planner.plan.AssignmentUtils.identityAssignmentsAsSymbolReferences; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestSortNodeStats.java b/presto-main/src/test/java/com/facebook/presto/cost/TestSortNodeStats.java index e51bff6d43ac0..0e61caf750990 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestSortNodeStats.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestSortNodeStats.java @@ -16,8 +16,8 @@ import com.facebook.presto.spi.relation.VariableReferenceExpression; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static java.lang.Double.POSITIVE_INFINITY; public class TestSortNodeStats diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestStatsNormalizer.java b/presto-main/src/test/java/com/facebook/presto/cost/TestStatsNormalizer.java index 13b80d6babe9c..576e59a09bb8c 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestStatsNormalizer.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestStatsNormalizer.java @@ -14,11 +14,11 @@ package com.facebook.presto.cost; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.type.TypeRegistry; @@ -27,15 +27,15 @@ import java.time.LocalDate; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.cost.StatsUtil.toStatsRepresentation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static java.lang.Double.NaN; import static java.util.Collections.emptyList; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestUnionStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestUnionStatsRule.java index 3630e9a91fd98..7ae373f1bd81e 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestUnionStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestUnionStatsRule.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableListMultimap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.lang.Double.NEGATIVE_INFINITY; import static java.lang.Double.POSITIVE_INFINITY; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestUnnestStatsRule.java b/presto-main/src/test/java/com/facebook/presto/cost/TestUnnestStatsRule.java index 0c8d40a5f43ef..8d9632fda0db5 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestUnnestStatsRule.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestUnnestStatsRule.java @@ -20,7 +20,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapType; public class TestUnnestStatsRule diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestValuesNodeStats.java b/presto-main/src/test/java/com/facebook/presto/cost/TestValuesNodeStats.java index 5a3da3b72c62f..94d57b7d3169e 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestValuesNodeStats.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestValuesNodeStats.java @@ -18,10 +18,10 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java b/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java index 9b4bcfd6d577b..f782d4e71450c 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java @@ -76,11 +76,11 @@ import java.util.stream.Stream; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.StateMachine.StateChangeListener; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.BROADCAST; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SOURCE_DISTRIBUTION; import static com.facebook.presto.util.Failures.toFailures; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java b/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java index 174b8caa036e3..424b377838a36 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.event.SplitMonitor; import com.facebook.presto.eventlistener.EventListenerManager; @@ -40,7 +41,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TestingTypeManager; import com.facebook.presto.spiller.GenericSpillerFactory; import com.facebook.presto.split.PageSinkManager; import com.facebook.presto.split.PageSourceManager; @@ -71,7 +71,7 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SOURCE_DISTRIBUTION; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestCreateTableTask.java b/presto-main/src/test/java/com/facebook/presto/execution/TestCreateTableTask.java index d22224a9effb4..998558aeed994 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestCreateTableTask.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestCreateTableTask.java @@ -15,6 +15,9 @@ package com.facebook.presto.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.AbstractMockMetadata; import com.facebook.presto.metadata.Catalog; import com.facebook.presto.metadata.CatalogManager; @@ -29,9 +32,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.connector.ConnectorCapabilities; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.SemanticException; import com.facebook.presto.sql.tree.ColumnDefinition; import com.facebook.presto.sql.tree.CreateTable; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java b/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java index 3c1110fc6f18c..21dd125e5d6f7 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -29,10 +29,10 @@ import static com.facebook.airlift.testing.Assertions.assertLessThanOrEqual; import static com.facebook.presto.SequencePageBuilder.createSequencePage; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.buffer.PageSplitterUtil.splitPage; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestQueryStateMachine.java b/presto-main/src/test/java/com/facebook/presto/execution/TestQueryStateMachine.java index 182225c9913b2..5082cf5c31add 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestQueryStateMachine.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestQueryStateMachine.java @@ -16,6 +16,7 @@ import com.facebook.airlift.testing.TestingTicker; import com.facebook.presto.Session; import com.facebook.presto.client.FailureInfo; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.memory.VersionedMemoryPoolId; import com.facebook.presto.metadata.Metadata; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.memory.MemoryPoolId; import com.facebook.presto.spi.resourceGroups.QueryType; import com.facebook.presto.spi.resourceGroups.ResourceGroupId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.transaction.DelegatingTransactionManager; import com.facebook.presto.transaction.TransactionId; import com.facebook.presto.transaction.TransactionManager; @@ -52,6 +52,7 @@ import static com.facebook.airlift.concurrent.MoreFutures.tryGetFutureValue; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.QueryState.DISPATCHING; import static com.facebook.presto.execution.QueryState.FAILED; import static com.facebook.presto.execution.QueryState.FINISHED; @@ -63,7 +64,6 @@ import static com.facebook.presto.execution.QueryState.WAITING_FOR_RESOURCES; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.USER_CANCELED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.transaction.InMemoryTransactionManager.createTestTransactionManager; import static com.google.common.util.concurrent.Futures.allAsList; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestSetSessionTask.java b/presto-main/src/test/java/com/facebook/presto/execution/TestSetSessionTask.java index e01fe2c2c4e96..d4e31ba27266e 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestSetSessionTask.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestSetSessionTask.java @@ -53,9 +53,9 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SESSION_PROPERTY; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.testing.TestingSession.createBogusTestingCatalog; import static com.facebook.presto.transaction.InMemoryTransactionManager.createTestTransactionManager; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlStageExecution.java b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlStageExecution.java index 0da0342ac452c..687908829a88d 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlStageExecution.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlStageExecution.java @@ -46,10 +46,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.SqlStageExecution.createSqlStageExecution; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.ARBITRARY; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SOURCE_DISTRIBUTION; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Type.REPARTITION; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java index 449611918ea9c..c9061f820466e 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java @@ -15,6 +15,8 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.BufferResult; import com.facebook.presto.execution.buffer.BufferState; import com.facebook.presto.execution.buffer.OutputBuffer; @@ -49,8 +51,6 @@ import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SpillSpaceTracker; import com.facebook.presto.sql.planner.LocalExecutionPlanner.LocalExecutionPlan; import com.facebook.presto.testing.TestingTransactionHandle; @@ -88,6 +88,7 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.createStringSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.TaskManagerConfig.TaskPriorityTracking.TASK_FAIR; import static com.facebook.presto.execution.TaskTestUtils.TABLE_SCAN_NODE_ID; import static com.facebook.presto.execution.TaskTestUtils.createTestSplitMonitor; @@ -100,7 +101,6 @@ import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; import static com.facebook.presto.spi.SplitContext.NON_CACHEABLE; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.NO_PREFERENCE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java b/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java index 19abe98c98e38..571727f00a5dc 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ByteArrayBlock; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; @@ -20,8 +22,6 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SplitContext; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ByteArrayBlock; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java index c114f4071b28f..7614d931a84de 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java @@ -14,12 +14,12 @@ package com.facebook.presto.execution.buffer; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.operator.PageAssertions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java index a115faf73d3ef..80a1726c62f3f 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.BigintType; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; @@ -34,6 +34,7 @@ import java.util.concurrent.ScheduledExecutorService; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.buffer.BufferResult.emptyResults; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; @@ -52,7 +53,6 @@ import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.ARBITRARY; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.units.DataSize.Unit.BYTE; import static java.util.concurrent.Executors.newScheduledThreadPool; import static java.util.stream.Collectors.toList; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java index 307dd51f47e75..e32a47582a824 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.AggregatedMemoryContext; @@ -20,7 +21,6 @@ import com.facebook.presto.memory.context.SimpleLocalMemoryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; -import com.facebook.presto.spi.type.BigintType; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; @@ -35,6 +35,7 @@ import java.util.concurrent.ScheduledExecutorService; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.buffer.BufferResult.emptyResults; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; @@ -59,7 +60,6 @@ import static com.facebook.presto.execution.buffer.TestingPagesSerdeFactory.testingPagesSerde; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newRootAggregatedMemoryContext; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static io.airlift.units.DataSize.Unit.BYTE; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java index 9786280986e5e..a9f0022e609d2 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.buffer.ClientBuffer.PagesSupplier; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.BigintType; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; @@ -33,6 +33,7 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicBoolean; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.buffer.BufferResult.emptyResults; import static com.facebook.presto.execution.buffer.BufferTestUtils.NO_WAIT; import static com.facebook.presto.execution.buffer.BufferTestUtils.PAGES_SERDE; @@ -41,7 +42,6 @@ import static com.facebook.presto.execution.buffer.BufferTestUtils.createPage; import static com.facebook.presto.execution.buffer.BufferTestUtils.getFuture; import static com.facebook.presto.execution.buffer.BufferTestUtils.sizeOfPages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java index c969e690a89de..ed2d5ec986cb9 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.page.PagesSerde; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; @@ -26,11 +26,11 @@ import java.util.Iterator; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.spi.page.PagesSerdeUtil.readPages; import static com.facebook.presto.spi.page.PagesSerdeUtil.writePages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java index f1669e6ce7adb..6a10d770abfc4 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.BigintType; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; @@ -30,6 +30,7 @@ import java.util.concurrent.ScheduledExecutorService; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.buffer.BufferResult.emptyResults; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; @@ -52,7 +53,6 @@ import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.units.DataSize.Unit.BYTE; import static java.util.concurrent.Executors.newScheduledThreadPool; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java index 8a2a415280d85..c8b69b03503c8 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java @@ -14,14 +14,14 @@ package com.facebook.presto.execution.buffer; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PageCompressor; import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.spiller.SpillCipher; -import com.facebook.presto.spi.type.TestingTypeManager; import io.airlift.compress.Compressor; import io.airlift.compress.Decompressor; import io.airlift.compress.lz4.Lz4Compressor; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java index 91be673c6c926..da2a5488d7d9b 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java @@ -43,7 +43,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SOURCE_DISTRIBUTION; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Type.REPARTITION; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java index ee53d5e83142b..cf5c2987c9abe 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java @@ -76,12 +76,12 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; import static com.facebook.presto.execution.scheduler.SourcePartitionedScheduler.newSourcePartitionedSchedulerAsStageScheduler; import static com.facebook.presto.spi.StandardErrorCode.NO_NODES_AVAILABLE; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SINGLE_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SOURCE_DISTRIBUTION; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Type.GATHER; diff --git a/presto-main/src/test/java/com/facebook/presto/memory/TestSystemMemoryBlocking.java b/presto-main/src/test/java/com/facebook/presto/memory/TestSystemMemoryBlocking.java index 117117ff891cb..7fb66111e876c 100644 --- a/presto-main/src/test/java/com/facebook/presto/memory/TestSystemMemoryBlocking.java +++ b/presto-main/src/test/java/com/facebook/presto/memory/TestSystemMemoryBlocking.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.memory; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; import com.facebook.presto.metadata.Split; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.PageConsumerOperator; import com.facebook.presto.testing.TestingTaskContext; @@ -53,8 +53,8 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.HARD_AFFINITY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.util.concurrent.Executors.newCachedThreadPool; import static java.util.concurrent.Executors.newScheduledThreadPool; import static java.util.concurrent.TimeUnit.NANOSECONDS; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java index e711f3b30f040..47634f67dc94a 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java @@ -15,6 +15,10 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorId; @@ -22,7 +26,6 @@ import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.connector.ConnectorCapabilities; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.function.SqlFunction; @@ -34,9 +37,6 @@ import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.planner.PartitioningHandle; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.slice.Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java index bfd15393d0256..e1cfc3d1ccc65 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestFunctionManager.java @@ -15,10 +15,13 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.CustomFunctions; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.Signature; @@ -26,9 +29,6 @@ import com.facebook.presto.spi.function.SqlFunctionVisibility; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.relational.FunctionResolution; import com.facebook.presto.sql.tree.QualifiedName; @@ -45,16 +45,16 @@ import static com.facebook.presto.common.function.OperatorType.CAST; import static com.facebook.presto.common.function.OperatorType.SATURATED_FLOOR_CAST; import static com.facebook.presto.common.function.OperatorType.tryGetOperatorType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.planner.LiteralEncoder.getMagicLiteralFunctionSignature; import static com.facebook.presto.sql.tree.ArithmeticBinaryExpression.Operator.ADD; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java index 6e5971e40efd3..a178148727881 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java @@ -47,9 +47,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.ConnectorId.createInformationSchemaConnectorId; import static com.facebook.presto.spi.ConnectorId.createSystemTablesConnectorId; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.transaction.InMemoryTransactionManager.createTestTransactionManager; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java index 68a684b9fc5e8..ff801d7241e5f 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestPolymorphicScalarFunction.java @@ -14,12 +14,12 @@ package com.facebook.presto.metadata; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -34,6 +34,10 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.TestPolymorphicScalarFunction.TestMethods.VARCHAR_TO_BIGINT_RETURN_VALUE; import static com.facebook.presto.metadata.TestPolymorphicScalarFunction.TestMethods.VARCHAR_TO_VARCHAR_RETURN_VALUE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; @@ -41,10 +45,6 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.comparableWithVariadicBound; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.lang.Math.toIntExact; import static java.util.Arrays.asList; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java index a1ea4f9131c10..088bd2627a83b 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignature.java @@ -17,18 +17,18 @@ import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Signature; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeDeserializer; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static org.testng.Assert.assertEquals; public class TestSignature diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignatureBinder.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignatureBinder.java index 597aec7287e80..053d9e9cb6a84 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestSignatureBinder.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestSignatureBinder.java @@ -14,14 +14,14 @@ package com.facebook.presto.metadata; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.TypeVariableConstraint; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.type.TypeRegistry; @@ -34,19 +34,19 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.orderableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.Signature.withVariadicBound; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java index 1e96aab1681a2..0bbd0bb9117f1 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java @@ -21,8 +21,8 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.metadata.TableLayoutResult.computeEnforced; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static org.testng.Assert.fail; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkBlockFlattener.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkBlockFlattener.java index f60786b342054..9a9f2720f54a3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkBlockFlattener.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkBlockFlattener.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.block.ArrayAllocator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockFlattener; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.IntArrayBlock; +import com.facebook.presto.common.block.ArrayAllocator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockFlattener; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.IntArrayBlock; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java index 8bad4486c2560..a2fd477a32075 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.type.BigintOperators; @@ -55,9 +55,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.UpdateMemory.NOOP; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static it.unimi.dsi.fastutil.HashCommon.arraySize; @SuppressWarnings("MethodMayBeStatic") diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java index acfbdad9b7836..cf66a65cefb6b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.tpch.LineItem; import io.airlift.tpch.LineItemGenerator; @@ -38,11 +38,11 @@ import java.util.List; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; @State(Scope.Thread) @OutputTimeUnit(TimeUnit.SECONDS) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java index 2d51dd00d4363..53b9c2b0558e8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.HashAggregationOperator.HashAggregationOperatorFactory; import com.facebook.presto.operator.StreamingAggregationOperator.StreamingAggregationOperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.SpillerFactory; @@ -54,10 +54,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.BenchmarkHashAndStreamingAggregationOperators.Context.ROWS_PER_PAGE; import static com.facebook.presto.operator.BenchmarkHashAndStreamingAggregationOperators.Context.TOTAL_PAGES; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static io.airlift.units.DataSize.Unit.GIGABYTE; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java index 05f43ce1c38c2..e1abd59e36a89 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.HashBuilderOperator.HashBuilderOperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; @@ -53,8 +53,8 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spiller.PartitioningSpillerFactory.unsupportedPartitioningSpillerFactory; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.units.DataSize.Unit.GIGABYTE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkReadBlock.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkReadBlock.java index 4f6cc54c1c413..41e664576a940 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkReadBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkReadBlock.java @@ -14,7 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.block.BlockAssertions; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java index 79eedad95b51c..d22074eab13e3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.unnest.UnnestOperator; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java index 086b782ffb493..13bd895e19039 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -47,11 +47,11 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.BenchmarkWindowOperator.Context.ROWS_PER_PAGE; import static com.facebook.presto.operator.BenchmarkWindowOperator.Context.TOTAL_PAGES; import static com.facebook.presto.operator.TestWindowOperator.ROW_NUMBER; import static com.facebook.presto.operator.TestWindowOperator.createFactoryUnbounded; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.units.DataSize.Unit.GIGABYTE; import static java.util.concurrent.Executors.newCachedThreadPool; import static java.util.concurrent.Executors.newScheduledThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java index 83b3c651b7947..71517c1c2dcd9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/GenericLongFunction.java @@ -14,25 +14,25 @@ package com.facebook.presto.operator; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.lang.invoke.MethodHandle; import java.util.function.LongUnaryOperator; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.FunctionKind.SCALAR; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.methodHandle; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java b/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java index 5241850210923..dca29f874665b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java @@ -15,12 +15,12 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.MemoryPool; import com.facebook.presto.memory.QueryContext; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.memory.MemoryPoolId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.SpillSpaceTracker; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; @@ -37,8 +37,8 @@ import static com.facebook.airlift.testing.Assertions.assertLessThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.OperatorAssertion.finishOperator; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static io.airlift.units.DataSize.Unit.GIGABYTE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java b/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java index ff1a74a262d7b..56d9d472217b8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java index b4a229290aedf..dfea2a2354880 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java @@ -15,11 +15,11 @@ import com.facebook.presto.block.BlockAssertions; import com.facebook.presto.block.BlockAssertions.Encoding; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; @@ -29,7 +29,7 @@ import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; import static com.facebook.presto.block.BlockAssertions.createAllNullsBlock; import static com.facebook.presto.block.BlockAssertions.createRandomBlockForType; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Verify.verify; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java index cc8ee4055bb49..5847189262dd9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.AggregationOperator.AggregationOperatorFactory; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import org.testng.annotations.AfterMethod; @@ -35,12 +35,12 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.OperatorAssertion.toPages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java index 63ca495cafb7b..514c409eacdc6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForAggregates.java @@ -14,7 +14,15 @@ package com.facebook.presto.operator; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.AggregationImplementation; @@ -29,8 +37,6 @@ import com.facebook.presto.operator.annotations.LiteralImplementationDependency; import com.facebook.presto.operator.annotations.OperatorImplementationDependency; import com.facebook.presto.operator.annotations.TypeImplementationDependency; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; @@ -49,12 +55,6 @@ import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.function.TypeParameterSpecialization; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.Constraint; import com.facebook.presto.type.LiteralParameter; @@ -68,13 +68,13 @@ import java.util.List; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser.parseFunctionDefinition; import static com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser.parseFunctionDefinitions; import static com.facebook.presto.spi.function.Signature.typeVariable; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java index 97a22efaee2ef..c074f47193363 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAnnotationEngineForScalars.java @@ -13,7 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.annotations.ImplementationDependency; @@ -23,7 +26,6 @@ import com.facebook.presto.operator.scalar.ParametricScalar; import com.facebook.presto.operator.scalar.annotations.ParametricScalarImplementation.ParametricScalarImplementationChoice; import com.facebook.presto.operator.scalar.annotations.ScalarFromAnnotationsParser; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.IsNull; @@ -33,8 +35,6 @@ import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.LiteralParameter; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -44,6 +44,10 @@ import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; @@ -53,10 +57,6 @@ import static com.facebook.presto.spi.function.SqlFunctionVisibility.EXPERIMENTAL; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.getOnlyElement; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java index bd89ab52fcc78..1ff2bffe88b34 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -27,12 +27,12 @@ import static com.facebook.presto.SequencePageBuilder.createSequencePage; import static com.facebook.presto.SequencePageBuilder.createSequencePageWithDictionaryBlocks; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterators.getOnlyElement; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java index 4d9fb7c6c96ca..cb698351fbb36 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -37,11 +37,11 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java b/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java index 354bebb542498..b18773e08851c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; import com.facebook.presto.memory.context.LocalMemoryContext; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.PageSourceProvider; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.PageConsumerOperator; @@ -62,10 +62,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.HARD_AFFINITY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.google.common.base.Preconditions.checkArgument; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java index 4d347f71016f3..85071bf03196c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java @@ -45,9 +45,9 @@ import static com.facebook.airlift.concurrent.MoreFutures.tryGetFutureValue; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.airlift.testing.Assertions.assertLessThan; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.execution.buffer.TestingPagesSerdeFactory.testingPagesSerde; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.collect.Maps.uniqueIndex; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static com.google.common.util.concurrent.Uninterruptibles.awaitUninterruptibly; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java index 088523f57971f..8665ccb5a342e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java @@ -15,6 +15,7 @@ import com.facebook.airlift.http.client.HttpClient; import com.facebook.airlift.http.client.testing.TestingHttpClient; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Location; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.buffer.PagesSerdeFactory; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.ExchangeOperator.ExchangeOperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.RemoteSplit; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; @@ -46,10 +46,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.ExchangeOperator.REMOTE_CONNECTOR_ID; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.TestingTaskBuffer.PAGE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.util.concurrent.Executors.newScheduledThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java index bad34d6f1845a..996d84de0cdcb 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java @@ -40,11 +40,11 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.BETWEEN; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java index d6686ffed5744..bddd935d0988c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java @@ -15,13 +15,13 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.TestingSession; @@ -40,11 +40,11 @@ import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringSequenceBlock; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.GroupByHash.createGroupByHash; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.type.TypeUtils.getHashBlock; import static com.google.common.math.DoubleMath.log2; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java index aed98e97cd7cc..565a04e860507 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java @@ -31,10 +31,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEqualsIgnoreOrder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java index d5e16c1b08231..948e932fe9d50 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java @@ -15,8 +15,8 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; @@ -35,12 +35,12 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.UpdateMemory.NOOP; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static io.airlift.slice.SizeOf.sizeOf; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java index 07fb3c322089d..d2d7a3d914c97 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java @@ -15,6 +15,12 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; @@ -23,14 +29,8 @@ import com.facebook.presto.operator.aggregation.builder.HashAggregationBuilder; import com.facebook.presto.operator.aggregation.builder.InMemoryHashAggregationBuilder; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.Spiller; import com.facebook.presto.spiller.SpillerFactory; import com.facebook.presto.sql.analyzer.FeaturesConfig; @@ -61,6 +61,10 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.GroupByHashYieldAssertion.GroupByHashYieldResult; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; @@ -68,10 +72,6 @@ import static com.facebook.presto.operator.OperatorAssertion.dropChannel; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; import static com.facebook.presto.operator.OperatorAssertion.toPages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java index 374fe7c3c2a7e..78fbf54d4e8ae 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java @@ -16,6 +16,7 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.TaskStateMachine; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.GenericPartitioningSpillerFactory; import com.facebook.presto.spiller.PartitioningSpillerFactory; import com.facebook.presto.spiller.SingleStreamSpiller; @@ -75,13 +75,13 @@ import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.OperatorAssertion.dropChannel; import static com.facebook.presto.operator.OperatorAssertion.without; import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java index b31f79dfea018..ba3504ae2dc47 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java @@ -15,11 +15,11 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.HashSemiJoinOperator.HashSemiJoinOperatorFactory; import com.facebook.presto.operator.SetBuilderOperator.SetBuilderOperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -41,12 +41,12 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.google.common.collect.Iterables.concat; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java index 13def7b6f6555..db03964eeaa2b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java @@ -30,7 +30,7 @@ import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SequencePageBuilder.createSequencePage; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java index 343861f378cac..30264a3a6f6c5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import java.util.List; import java.util.OptionalInt; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java index 46e4454c6e2b5..0eb3e66f5820e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.MarkDistinctOperator.MarkDistinctOperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -38,11 +38,11 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java index 0cbcb043aaa7b..3f3434be14a85 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java @@ -18,9 +18,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.operator.WorkProcessorAssertion.assertFinishes; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.collect.ImmutableList.toImmutableList; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java index bece0d289764c..90544b06902dd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java @@ -15,6 +15,8 @@ import com.facebook.airlift.http.client.HttpClient; import com.facebook.airlift.http.client.testing.TestingHttpClient; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Location; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.buffer.PagesSerdeFactory; @@ -22,9 +24,7 @@ import com.facebook.presto.metadata.RemoteTransactionHandle; import com.facebook.presto.metadata.Split; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.RemoteSplit; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.cache.CacheBuilder; @@ -44,13 +44,13 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorIsBlocked; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorIsUnblocked; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.google.common.collect.Iterables.getOnlyElement; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java index 93f3ca56bc35c..fee5b9f8fd937 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; import org.testng.annotations.AfterClass; @@ -31,7 +31,7 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.util.concurrent.Executors.newCachedThreadPool; import static java.util.concurrent.Executors.newScheduledThreadPool; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java index 582f267200017..3ee3b91188145 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory; import com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopJoinOperatorFactory; import com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopPageBuilder; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; @@ -34,10 +34,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.ValuesOperator.ValuesOperatorFactory; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.google.common.collect.Iterables.concat; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java index 06a0f90cbb024..07ae48d0634b9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java @@ -32,13 +32,13 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.OperatorAssertion.toPages; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java index 1ae4c6e2fb3e3..4931a811d2c3d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -22,8 +22,8 @@ import java.util.List; import static com.facebook.presto.SequencePageBuilder.createSequencePage; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.lang.String.format; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java index 9e2b0c8ea22fa..f3e7eb959725c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java @@ -14,6 +14,9 @@ package com.facebook.presto.operator; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers; import com.facebook.presto.execution.buffer.PagesSerdeFactory; @@ -22,10 +25,7 @@ import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.operator.repartition.PartitionedOutputOperator; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.facebook.presto.testing.TestingTaskContext; import com.facebook.presto.type.TypeRegistry; @@ -46,12 +46,12 @@ import static com.facebook.presto.block.BlockAssertions.createLongDictionaryBlock; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED; import static com.facebook.presto.execution.buffer.OutputBuffers.createInitialEmptyOutputBuffers; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static io.airlift.units.DataSize.Unit.BYTE; import static io.airlift.units.DataSize.Unit.GIGABYTE; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java index 7724f839cd0d8..1d60b40721c8f 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java @@ -24,8 +24,8 @@ import java.util.Optional; import java.util.OptionalInt; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.SyntheticAddress.encodeSyntheticAddress; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.collect.Iterables.getOnlyElement; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestRealAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/TestRealAverageAggregation.java index 0ba0ededf17ae..57c33cdd67754 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestRealAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestRealAverageAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.AbstractTestAggregationFunction; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -27,8 +27,8 @@ import java.util.List; import static com.facebook.presto.block.BlockAssertions.createBlockOfReals; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java index c3c94099fdb54..c772b12b72409 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -42,13 +42,13 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; import static com.facebook.presto.operator.OperatorAssertion.toPages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java index 10f95ccea04d3..b3496dd9d30cb 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java @@ -15,6 +15,9 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; @@ -34,9 +37,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.RowExpression; @@ -62,13 +62,13 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.block.BlockAssertions.toValues; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java index 99761dd4266e4..1308536035f49 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java @@ -36,10 +36,10 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java index 3d9e709dc0221..7f14deb53a164 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableFinishOperator.java @@ -15,6 +15,9 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.metadata.FunctionManager; @@ -22,14 +25,11 @@ import com.facebook.presto.operator.TableFinishOperator.TableFinishOperatorFactory; import com.facebook.presto.operator.TableFinishOperator.TableFinisher; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.statistics.ColumnStatisticMetadata; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -50,14 +50,14 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.PageSinkCommitStrategy.LIFESPAN_COMMIT; import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; import static com.facebook.presto.operator.TableWriterUtils.STATS_START_CHANNEL; import static com.facebook.presto.spi.statistics.ColumnStatisticType.MAX_VALUE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java index e3a47c19dc223..834b14848853c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java @@ -16,6 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.scheduler.ExecutionWriterTarget.CreateHandle; @@ -35,12 +37,10 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.PageSinkManager; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -60,11 +60,11 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.PageSinkCommitStrategy.NO_COMMIT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java index 8d9bc3aa20396..ec41d3815bc14 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java @@ -31,12 +31,12 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static com.facebook.presto.testing.assertions.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java index 6422a0c21a7b8..b70e0a269db1e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; @@ -38,12 +38,12 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.GroupByHashYieldAssertion.createPagesWithDistinctHashKeys; import static com.facebook.presto.operator.GroupByHashYieldAssertion.finishOperatorWithYieldingGroupByHash; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.TopNRowNumberOperator.TopNRowNumberOperatorFactory; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; import static java.util.concurrent.Executors.newCachedThreadPool; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java index 0e83d4f79536f..d64b39960087b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java @@ -14,6 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.ExceededMemoryLimitException; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.WindowOperator.WindowOperatorFactory; import com.facebook.presto.operator.window.FirstValueFunction; import com.facebook.presto.operator.window.FrameInfo; @@ -24,9 +26,7 @@ import com.facebook.presto.operator.window.ReflectionWindowFunctionSupplier; import com.facebook.presto.operator.window.RowNumberFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; @@ -44,14 +44,14 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEqualsIgnoreOrder; import static com.facebook.presto.operator.OperatorAssertion.toPages; import static com.facebook.presto.operator.WindowFunctionDefinition.window; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_FOLLOWING; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_PRECEDING; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.WindowType.RANGE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java b/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java index f7a076fd099d2..6aa0d4a4cabe8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -23,7 +23,7 @@ import java.util.List; import static com.facebook.presto.SequencePageBuilder.createSequencePage; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class TestingTaskBuffer { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java index 49430e96a4173..242e99b6bd2da 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestAggregationFunction.java @@ -15,14 +15,14 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Plugin; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.sql.tree.QualifiedName; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java index be0985154f43c..816a72ef2ce5d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -36,7 +36,7 @@ import java.util.concurrent.ThreadLocalRandom; import static com.facebook.airlift.testing.Assertions.assertLessThan; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static org.testng.Assert.assertEquals; public abstract class AbstractTestApproximateCountDistinct diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalAverageAggregation.java index bd3a585f637aa..c622aa97758c1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalAverageAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import java.math.BigDecimal; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalSumAggregation.java index cd85f3c5577ab..7cbaebaa42fd1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestDecimalSumAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import java.math.BigDecimal; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java index b4a5ae952e15d..71f49ac5e7cb1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.google.common.primitives.Ints; import org.apache.commons.math3.util.Precision; @@ -28,8 +28,8 @@ import java.util.function.BiFunction; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static org.testng.Assert.assertEquals; import static org.testng.Assert.fail; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java index c5364d0dbb411..b89937837c922 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.openjdk.jmh.annotations.Benchmark; @@ -43,10 +43,10 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.openjdk.jmh.annotations.Level.Invocation; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java index d66872bda282b..e9d57b435495e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; import com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.sql.analyzer.FeaturesConfig; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; @@ -47,8 +47,8 @@ import java.util.stream.IntStream; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.histogram.Histogram.NAME; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; @OutputTimeUnit(TimeUnit.SECONDS) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctBoolean.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctBoolean.java index 1def0b9d4465e..bf67ec9365d30 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctBoolean.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctBoolean.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.primitives.Booleans; @@ -23,8 +23,8 @@ import java.util.List; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctBoolean diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctDouble.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctDouble.java index fc4e59883382e..0d49a01b3fb83 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctDouble.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctDouble.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctDouble diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctInteger.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctInteger.java index 7f7de8c15c7a7..069bc505cf2ab 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctInteger.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctInteger.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctInteger diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctIpAddress.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctIpAddress.java index d75f09ea0c1e1..793036a304aad 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctIpAddress.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctIpAddress.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slices; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.IpAddressType.IPADDRESS; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLong.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLong.java index 27bd78302bd90..d174b858ea1d0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLong.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLong.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctLong diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLongDecimal.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLongDecimal.java index 7afa1ab533440..4abe34d084cab 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLongDecimal.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctLongDecimal.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slices; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_PRECISION; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_PRECISION; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctLongDecimal diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctSmallint.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctSmallint.java index 7940c2530f657..823b4398fbe71 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctSmallint.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctSmallint.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctSmallint diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctTinyint.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctTinyint.java index 4369d3a6fe0d9..1d6581e76fb16 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctTinyint.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctTinyint.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctTinyint diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctVarBinary.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctVarBinary.java index 4d0def5faa304..016c4f1d46765 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctVarBinary.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximateCountDistinctVarBinary.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slices; import java.util.concurrent.ThreadLocalRandom; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximateCountDistinctVarBinary diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximatePercentileAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximatePercentileAggregation.java index 24605705ecfbf..c482c15f0993b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximatePercentileAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestApproximatePercentileAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -29,10 +29,10 @@ import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createSequenceBlockOfReal; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestApproximatePercentileAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArbitraryAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArbitraryAggregation.java index 4e22c7a4bca93..6097090250bef 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArbitraryAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArbitraryAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -29,12 +29,12 @@ import static com.facebook.presto.block.BlockAssertions.createIntsBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.collect.ImmutableSet.toImmutableSet; import static org.testng.Assert.assertNotNull; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayAggregation.java index 5c6979b507b52..e9e0f550bf857 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayAggregation.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInput; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInputBuilder; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestOutput; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import org.testng.internal.collections.Ints; @@ -39,11 +39,11 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; import static com.facebook.presto.block.BlockAssertions.createTypedLongsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMaxNAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMaxNAggregation.java index 49922452fc4f1..4dbf9b3aefda3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMaxNAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMaxNAggregation.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import org.testng.annotations.Test; @@ -28,8 +28,8 @@ import java.util.stream.LongStream; import static com.facebook.presto.block.BlockAssertions.createLongRepeatBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; public class TestArrayMaxNAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMinAggregation.java index 43d6dc0ee49e1..010639c7eed42 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestArrayMinAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; public class TestArrayMinAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseAndAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseAndAggregation.java index 3e465ba4bcbb9..90d54b290e37e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseAndAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseAndAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -23,7 +23,7 @@ import java.util.stream.LongStream; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestBitwiseAndAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseOrAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseOrAggregation.java index 7719f42abdb55..c3d367bb97c83 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseOrAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBitwiseOrAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -23,7 +23,7 @@ import java.util.stream.LongStream; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestBitwiseOrAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanAndAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanAndAggregation.java index ec6fcc24f5150..840cffae047df 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanAndAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanAndAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanOrAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanOrAggregation.java index 49472939aacd8..39470504447c2 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanOrAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestBooleanOrAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestChecksumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestChecksumAggregation.java index 453b58b906679..292a61709a717 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestChecksumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestChecksumAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; import static com.facebook.presto.block.BlockAssertions.createArrayBigintBlock; @@ -29,13 +29,13 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createShortDecimalsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.ChecksumAggregationFunction.PRIME64; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static io.airlift.slice.Slices.wrappedLongArray; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountAggregation.java index c7f4726cd1b51..f57aff44477e4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestCountAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountColumnAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountColumnAggregation.java index 0d2fbfa939e83..b59c2f022fd77 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountColumnAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountColumnAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestCountColumnAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountIfAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountIfAggregation.java index ad0b3cd1daf8e..23f4e8c731368 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountIfAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountIfAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestCountIfAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountNullAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountNullAggregation.java index 5da964cae6afc..25c0b91b4be8e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountNullAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestCountNullAggregation.java @@ -13,10 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.BlockIndex; @@ -25,13 +26,12 @@ import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestCountNullAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDateMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDateMaxAggregation.java index 78fb1017aa180..b1e9a62822056 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDateMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDateMaxAggregation.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalAverageAggregation.java index c93300cccb4aa..233ba6e2e593a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalAverageAggregation.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowAndLongState; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowAndLongStateFactory; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.math.BigDecimal; import java.math.BigInteger; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static com.facebook.presto.operator.aggregation.DecimalAverageAggregation.average; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static org.testng.Assert.assertEquals; @Test(singleThreaded = true) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalSumAggregation.java index 8cd552ed8dd4d..4ea614999f3e4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDecimalSumAggregation.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowState; import com.facebook.presto.operator.aggregation.state.LongDecimalWithOverflowStateFactory; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import java.math.BigInteger; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static org.testng.Assert.assertEquals; @Test(singleThreaded = true) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleAverageAggregation.java index 985531da0a8dc..e553a1e1e4b5c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleAverageAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleAverageAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCorrelationAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCorrelationAggregation.java index bb90c9e2109a1..6dbb7a0a07b96 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCorrelationAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCorrelationAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.PearsonsCorrelation; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovariancePopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovariancePopAggregation.java index 05f44f627702e..5eb38a7b84be4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovariancePopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovariancePopAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.Covariance; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovarianceSampAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovarianceSampAggregation.java index 394e70252de6e..595f16478f2e9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovarianceSampAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleCovarianceSampAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.Covariance; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleGeometricMeanAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleGeometricMeanAggregation.java index 6d59637e898c2..e9c393f5528a7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleGeometricMeanAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleGeometricMeanAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleGeometricMeanAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java index dbcbab76a7450..73843b7878c50 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.MapType; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import org.testng.annotations.Test; @@ -27,10 +27,10 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.getFinalBlock; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.getIntermediateBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleKurtosisAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleKurtosisAggregation.java index 8fea5de3c271e..fbc03bcab6548 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleKurtosisAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleKurtosisAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Kurtosis; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleKurtosisAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMaxAggregation.java index d82e08738f63f..d614de3dce05a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMaxAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleMaxAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinAggregation.java index 4acf64addf4ef..bbf1854536c44 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleMinAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinNAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinNAggregation.java index 0ff59ad299b08..5a797405d46a5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinNAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleMinNAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrInterceptAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrInterceptAggregation.java index 0ebc47cc7d38c..9b368cc755f37 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrInterceptAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrInterceptAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.regression.SimpleRegression; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrSlopeAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrSlopeAggregation.java index 7b6ee1e4a64f6..83bc8b9dd5a1a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrSlopeAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleRegrSlopeAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.regression.SimpleRegression; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSkewnessAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSkewnessAggregation.java index 4da1511c42d5c..1ee6425f3a33d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSkewnessAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSkewnessAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Skewness; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleSkewnessAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevAggregation.java index 4bacbfa19992c..1eb78d82286c4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleStdDevAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevPopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevPopAggregation.java index 57e5acb593858..58c83bf87a8b4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevPopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleStdDevPopAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleStdDevPopAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSumAggregation.java index 4923d33e59833..e52a57f1288ae 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleSumAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleSumAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVarianceAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVarianceAggregation.java index 0ce1269361e8f..700cc2b5ab911 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVarianceAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVarianceAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Variance; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleVarianceAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVariancePopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVariancePopAggregation.java index ebea34f41b4e9..1c7e80da1c571 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVariancePopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleVariancePopAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Variance; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestDoubleVariancePopAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestEntropyAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestEntropyAggregation.java index ebbacddb91164..21b2957989207 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestEntropyAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestEntropyAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -30,8 +30,8 @@ import java.util.stream.IntStream; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestHistogram.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestHistogram.java index b9732477781ad..c418cb0a6cf4a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestHistogram.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestHistogram.java @@ -14,6 +14,14 @@ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInput; @@ -21,14 +29,6 @@ import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestOutput; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; import com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -51,17 +51,17 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringArraysBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.toRow; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.histogram.Histogram.NAME; import static com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation.NEW; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondAverageAggregation.java index bdee15c3dcc1f..e439204726b13 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondAverageAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.type.SqlIntervalDayTime; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondSumAggregation.java index 9ef4a94f910fe..4909d15142b92 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalDayToSecondSumAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.type.SqlIntervalDayTime; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthAverageAggregation.java index aa73df79b93fe..4b76f818d7a86 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthAverageAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.type.SqlIntervalYearMonth; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthSumAggregation.java index ac79a461d9577..afd676d01e3b1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestIntervalYearToMonthSumAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.type.SqlIntervalYearMonth; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongAverageAggregation.java index a540116ab68fb..1c27452f4a0b1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongAverageAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongAverageAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalAverageAggregation.java index 94a5ad3ff06fc..6032b380405d0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalAverageAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; public class TestLongDecimalAverageAggregation extends AbstractTestDecimalAverageAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMaxAggregation.java index fd580d977743d..830549a37fb98 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMaxAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.writeBigDecimal; +import static com.facebook.presto.common.type.Decimals.writeBigDecimal; public class TestLongDecimalMaxAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMinAggregation.java index 7f32e0f74421b..6b4356b461c44 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalMinAggregation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.writeBigDecimal; +import static com.facebook.presto.common.type.Decimals.writeBigDecimal; public class TestLongDecimalMinAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalSumAggregation.java index 618d71c1da05f..07102b4ce2024 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongDecimalSumAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; public class TestLongDecimalSumAggregation extends AbstractTestDecimalSumAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongGeometricMeanAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongGeometricMeanAggregationFunction.java index 877e4b3d94885..171c1c26873c7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongGeometricMeanAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongGeometricMeanAggregationFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestLongGeometricMeanAggregationFunction extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongKurtosisAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongKurtosisAggregation.java index f98e73a906fc4..6d8a7c2494712 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongKurtosisAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongKurtosisAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Kurtosis; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongKurtosisAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxAggregation.java index 77027f656f274..60cc3bfb10efd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongMaxAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxNAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxNAggregation.java index ebfab76f8a35d..c438f49f66cd9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxNAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMaxNAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMinAggregation.java index 6216e338afcc2..a389ea043acdc 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongMinAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongMinAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSkewnessAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSkewnessAggregation.java index 13f000dbddbcb..eb8bd2fc4633d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSkewnessAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSkewnessAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Skewness; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongSkewnessAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevAggregation.java index baa7d6c7a422c..9fd659ece90f6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongStdDevAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevPopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevPopAggregation.java index 5177f90adfc94..a8d53d1447ee0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevPopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongStdDevPopAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.StandardDeviation; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongStdDevPopAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSumAggregation.java index 9780d39b4c8e8..5319971b1de10 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongSumAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongSumAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVarianceAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVarianceAggregation.java index 547ba70888ae2..16af286e38d1b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVarianceAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVarianceAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Variance; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongVarianceAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVariancePopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVariancePopAggregation.java index 2f0877f8299b4..83f29109715f9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVariancePopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestLongVariancePopAggregation.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.descriptive.moment.Variance; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestLongVariancePopAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapAggAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapAggAggregation.java index 3ca29f7731fbc..ea327ae122751 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapAggAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapAggAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -32,13 +32,13 @@ import static com.facebook.presto.block.BlockAssertions.createStringArraysBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; import static com.facebook.presto.block.BlockAssertions.createTypedLongsBlock; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.OperatorAssertion.toRow; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.MapAggregationFunction.NAME; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapUnionAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapUnionAggregation.java index d6c9526f3fe6c..8cb6428b06199 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapUnionAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMapUnionAggregation.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -25,12 +25,12 @@ import java.util.HashMap; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.MapUnionAggregation.NAME; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeHyperLogLogAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeHyperLogLogAggregation.java index 78852e783d169..1d9edadf4af51 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeHyperLogLogAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeHyperLogLogAggregation.java @@ -14,15 +14,15 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.cardinality.HyperLogLog; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; public class TestMergeHyperLogLogAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeQuantileDigestFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeQuantileDigestFunction.java index 11e651292bccc..42cdb82951c4c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeQuantileDigestFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeQuantileDigestFunction.java @@ -14,18 +14,18 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeParameter; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.function.BiFunction; -import static com.facebook.presto.spi.type.QuantileDigestParametricType.QDIGEST; +import static com.facebook.presto.common.type.QuantileDigestParametricType.QDIGEST; import static io.airlift.slice.Slices.wrappedBuffer; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeTDigestFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeTDigestFunction.java index 996ebec262bf1..3b9baaacc7e32 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeTDigestFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeTDigestFunction.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeParameter; import com.facebook.presto.tdigest.TDigest; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.function.BiFunction; -import static com.facebook.presto.spi.type.TDigestParametricType.TDIGEST; +import static com.facebook.presto.common.type.TDigestParametricType.TDIGEST; import static com.facebook.presto.tdigest.TDigest.createTDigest; import static io.airlift.slice.Slices.wrappedBuffer; import static java.lang.Math.abs; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java index d750e62a8ae00..709f880099ebc 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java @@ -14,17 +14,17 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.RowPageBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInput; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInputBuilder; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestOutput; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; @@ -38,12 +38,12 @@ import java.util.Optional; import java.util.Random; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.multimapagg.MultimapAggregationFunction.NAME; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestPrecisionRecallAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestPrecisionRecallAggregation.java index 19d0e45b445a9..614e3d846c35b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestPrecisionRecallAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestPrecisionRecallAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -30,10 +30,10 @@ import static com.facebook.presto.block.BlockAssertions.createBooleansBlock; import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java index 9512bee67a6f1..25b4fa6883e5f 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.primitives.Doubles; import com.google.common.primitives.Floats; import org.testng.annotations.Test; @@ -34,14 +34,14 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; import static com.facebook.presto.block.BlockAssertions.createSequenceBlockOfReal; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.StandardTypes.QDIGEST; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.doubleToSortableLong; import static com.facebook.presto.operator.aggregation.FloatingPointBitsConverterUtil.floatToSortableInt; import static com.facebook.presto.operator.aggregation.TestMergeQuantileDigestFunction.QDIGEST_EQUALITY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.StandardTypes.QDIGEST; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.Double.NaN; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCorrelationAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCorrelationAggregation.java index 1d4edaed8cc9a..51871ed2176ca 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCorrelationAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCorrelationAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.PearsonsCorrelation; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovariancePopAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovariancePopAggregation.java index 2514890ea468c..a43334cfbfe8e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovariancePopAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovariancePopAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.Covariance; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovarianceSampAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovarianceSampAggregation.java index e78a4989a54ee..e08ae32e5bbe7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovarianceSampAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealCovarianceSampAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.correlation.Covariance; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealGeometricMeanAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealGeometricMeanAggregation.java index 1c5e3b1b23918..99e2580f4f41b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealGeometricMeanAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealGeometricMeanAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; public class TestRealGeometricMeanAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java index 51ba0025248f3..8cc1e35018aaf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.MapType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -29,11 +29,11 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.getFinalBlock; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.getIntermediateBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrInterceptAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrInterceptAggregation.java index bbe60f35bd689..a4467fc24cf2a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrInterceptAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrInterceptAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.regression.SimpleRegression; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrSlopeAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrSlopeAggregation.java index 8399c3a5f31a9..912633867ae83 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrSlopeAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealRegrSlopeAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.apache.commons.math3.stat.regression.SimpleRegression; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealSumAggregation.java index 8c1be9e6d4d22..17c85b87c7ba3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealSumAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; public class TestRealSumAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalAverageAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalAverageAggregation.java index 6038ad9604eb9..58391b1581a32 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalAverageAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalAverageAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; public class TestShortDecimalAverageAggregation extends AbstractTestDecimalAverageAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMaxAggregation.java index 50068609c4c82..5aa7e90a50581 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMaxAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMinAggregation.java index abbad991b74a8..93e1fcebc42cd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalMinAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalSumAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalSumAggregation.java index b18844680d140..eaf94076fbc3d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalSumAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestShortDecimalSumAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; import com.google.common.collect.ImmutableList; import java.math.BigDecimal; import java.util.List; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; public class TestShortDecimalSumAggregation extends AbstractTestDecimalSumAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStateCompiler.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStateCompiler.java index 13133957e750b..d0c8a96152eaf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStateCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStateCompiler.java @@ -22,19 +22,19 @@ import com.facebook.presto.array.ReferenceCountMap; import com.facebook.presto.array.SliceBigArray; import com.facebook.presto.bytecode.DynamicClassLoader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.state.LongState; import com.facebook.presto.operator.aggregation.state.NullableLongState; import com.facebook.presto.operator.aggregation.state.StateCompiler; import com.facebook.presto.operator.aggregation.state.VarianceState; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AccumulatorState; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.GroupedAccumulatorState; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.util.Reflection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -47,13 +47,13 @@ import java.util.Map; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java index 7a47f8f63f538..d7188469c452d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Joiner; import org.testng.annotations.Test; @@ -30,10 +30,10 @@ import static com.facebook.presto.block.BlockAssertions.createDoubleSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.Double.NaN; import static java.lang.Integer.max; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java index 50c22f579a563..592a76df89a17 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.tdigest.TDigest; import java.util.ArrayList; @@ -27,11 +27,11 @@ import java.util.List; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.TDIGEST; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.TestMergeTDigestFunction.TDIGEST_EQUALITY; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.TDIGEST; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.tdigest.TDigest.createTDigest; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHeap.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHeap.java index 17d68a0fb1564..7a8305cecf815 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHeap.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHeap.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import org.testng.annotations.Test; import java.util.ArrayList; @@ -23,7 +23,7 @@ import java.util.PrimitiveIterator; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; public class TestTypedHeap diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHistogram.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHistogram.java index 3c380f7f11e84..a1cf97b7c5cc1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHistogram.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedHistogram.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.operator.aggregation.histogram.SingleTypedHistogram; import com.facebook.presto.operator.aggregation.histogram.TypedHistogram; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.MapType; import org.testng.annotations.Test; import java.util.function.IntUnaryOperator; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedKeyValueHeap.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedKeyValueHeap.java index 0fba031693361..4ea835a2954cd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedKeyValueHeap.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedKeyValueHeap.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import org.testng.annotations.Test; import java.util.ArrayList; @@ -24,8 +24,8 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestTypedKeyValueHeap diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java index 92ac036d96ea4..1e5254d2a4f1e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -27,9 +27,9 @@ import static com.facebook.presto.block.BlockAssertions.createEmptyLongsBlock; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.EXCEEDED_FUNCTION_MEMORY_LIMIT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Collections.nCopies; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMaxAggregation.java index 45a12cc68acd2..e024e0b3c7caf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMaxAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.type.UnknownType; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMinAggregation.java index 13fc57a9ce01a..087c658458df1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestUnknownMinAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.type.UnknownType; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMaxAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMaxAggregation.java index 264001a5bcb7a..612cd77de9923 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMaxAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMaxAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; import com.google.common.primitives.Ints; @@ -24,7 +24,7 @@ import java.util.List; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class TestVarBinaryMaxAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMinAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMinAggregation.java index f4bf60044cec2..726c9d6095248 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMinAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestVarBinaryMinAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; import com.google.common.primitives.Ints; @@ -24,7 +24,7 @@ import java.util.List; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class TestVarBinaryMinAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/AbstractTestFixedHistogramAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/AbstractTestFixedHistogramAggregation.java index 6c0ee63c78b0d..7fd517d9e1fbb 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/AbstractTestFixedHistogramAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/AbstractTestFixedHistogramAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.differentialentropy; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.AbstractTestAggregationFunction; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import java.util.HashMap; @@ -24,7 +24,7 @@ import java.util.Map; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; abstract class AbstractTestFixedHistogramAggregation extends AbstractTestAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestIllegalMethodAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestIllegalMethodAggregation.java index ba071b0686fe5..2e45d1b9cc518 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestIllegalMethodAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestIllegalMethodAggregation.java @@ -22,10 +22,10 @@ import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.aggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestIllegalMethodAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestUnweightedReservoirAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestUnweightedReservoirAggregation.java index e5ce85b69136e..695b4b1be2c36 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestUnweightedReservoirAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestUnweightedReservoirAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.differentialentropy; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -25,8 +25,8 @@ import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.aggregation; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; public class TestUnweightedReservoirAggregation extends AbstractTestReservoirAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestWeightedReservoirAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestWeightedReservoirAggregation.java index 1a0fe69ee8bfc..51674440fb875 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestWeightedReservoirAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/differentialentropy/TestWeightedReservoirAggregation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.differentialentropy; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -25,8 +25,8 @@ import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.aggregation; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; public class TestWeightedReservoirAggregation extends AbstractTestReservoirAggregation diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java index 704e0f5de295e..6766bb63e8d63 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; +import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; public class AggregationTestInputBuilder { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestOutput.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestOutput.java index 712e419e595b0..3f7b007e5dcb8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestOutput.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestOutput.java @@ -15,8 +15,8 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.aggregation.GroupedAccumulator; -import com.facebook.presto.spi.block.BlockBuilder; import java.util.function.BiConsumer; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java index 7d04b4d22a23b..5977278336b49 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; +import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/histogram/TestValueStore.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/histogram/TestValueStore.java index 4e578c1eddf13..430a41827393e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/histogram/TestValueStore.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/histogram/TestValueStore.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.histogram; import com.facebook.presto.block.BlockAssertions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.type.TypeUtils; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByAggregation.java index e9c088e16d74f..eb4a1534989ea 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByAggregation.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.aggregation.state.StateCompiler; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -35,13 +35,13 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createShortDecimalsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.google.common.collect.ImmutableSet.toImmutableSet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java index 939ce8f552e43..9b18a83fcb55d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -30,11 +30,11 @@ import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createRLEBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.groupedAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java b/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java index 80916ba880e92..9e26dac0849ec 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java @@ -15,6 +15,7 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.InterpretedHashGenerator; import com.facebook.presto.operator.PageAssertions; @@ -23,7 +24,6 @@ import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactoryId; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.PartitioningProviderManager; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; @@ -38,9 +38,9 @@ import java.util.function.Consumer; import static com.facebook.airlift.testing.Assertions.assertContains; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.operator.PipelineExecutionStrategy.GROUPED_EXECUTION; import static com.facebook.presto.operator.PipelineExecutionStrategy.UNGROUPED_EXECUTION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_ARBITRARY_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_BROADCAST_DISTRIBUTION; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/index/TestFieldSetFilteringRecordSet.java b/presto-main/src/test/java/com/facebook/presto/operator/index/TestFieldSetFilteringRecordSet.java index 010e43d3551e2..c69f355943e02 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/index/TestFieldSetFilteringRecordSet.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/index/TestFieldSetFilteringRecordSet.java @@ -14,21 +14,21 @@ package com.facebook.presto.operator.index; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java index 894f50f97e1de..8c87463d325f1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -27,14 +27,14 @@ import java.util.OptionalInt; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterators.getOnlyElement; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java b/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java index db38251c2e0ff..9be6c24029456 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/BenchmarkDictionaryBlockGetSizeInBytes.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.openjdk.jmh.annotations.Benchmark; @@ -43,9 +43,9 @@ import java.util.Random; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static io.airlift.slice.Slices.utf8Slice; import static java.util.concurrent.TimeUnit.MICROSECONDS; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java index 63b261d8dcaea..4fb36c981e342 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntArraySet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java index 8466137d4ac64..4dd38f2c6f3b7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.google.common.collect.ImmutableList; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -36,8 +36,8 @@ import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; import static com.facebook.presto.block.BlockAssertions.createLongSequenceBlock; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java index 966add21d0e90..aa6fa32fe6a8a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -23,11 +23,11 @@ import java.util.Optional; import static com.facebook.presto.SequencePageBuilder.createSequencePage; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.execution.buffer.PageSplitterUtil.splitPage; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.google.common.collect.Iterators.transform; import static java.lang.Math.toIntExact; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java index 35398cb630c0e..6f15a3a629440 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java @@ -14,6 +14,11 @@ package com.facebook.presto.operator.project; import com.facebook.airlift.testing.TestingTicker; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.metadata.MetadataManager; @@ -21,12 +26,7 @@ import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.CallExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionProfiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -51,6 +51,8 @@ import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.executor.PrioritizedSplitRunner.SPLIT_RUN_QUANTA; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; @@ -59,8 +61,6 @@ import static com.facebook.presto.operator.project.PageProcessor.MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.operator.project.PageProcessor.MIN_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.operator.project.SelectedPositions.positionsRange; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java index bbac6ee65c40c..85477d7323714 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java @@ -15,6 +15,8 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.BufferState; @@ -34,8 +36,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.facebook.presto.testing.TestingTaskContext; import com.facebook.presto.type.TypeRegistry; @@ -71,6 +71,14 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.presto.block.BlockAssertions.createMapType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RowType.withDefaultFieldNames; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED; @@ -79,14 +87,6 @@ import static com.facebook.presto.operator.PageAssertions.createDictionaryPageWithRandomData; import static com.facebook.presto.operator.PageAssertions.createRlePageWithRandomData; import static com.facebook.presto.operator.PageAssertions.updateBlockTypesWithHashBlockAndNullBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RowType.withDefaultFieldNames; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.SystemPartitionFunction.HASH; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java index dc972d5f6a664..2b4d66dcfbd05 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestBlockEncodingBuffers.java @@ -29,16 +29,16 @@ import com.facebook.presto.block.BlockAssertions.Encoding; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockFlattener; +import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.SimpleArrayAllocator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockFlattener; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; import io.airlift.slice.DynamicSliceOutput; @@ -69,22 +69,22 @@ import static com.facebook.presto.block.BlockAssertions.createRandomStringBlock; import static com.facebook.presto.block.BlockAssertions.createRleBlockWithRandomValue; import static com.facebook.presto.block.BlockAssertions.wrapBlock; +import static com.facebook.presto.common.block.ArrayBlock.fromElementBlock; +import static com.facebook.presto.common.block.BlockSerdeUtil.readBlock; +import static com.facebook.presto.common.block.MapBlock.fromKeyValueBlock; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.block.RowBlock.fromFieldBlocks; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RowType.withDefaultFieldNames; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.repartition.AbstractBlockEncodingBuffer.createBlockEncodingBuffers; import static com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.decodeBlock; -import static com.facebook.presto.spi.block.ArrayBlock.fromElementBlock; -import static com.facebook.presto.spi.block.BlockSerdeUtil.readBlock; -import static com.facebook.presto.spi.block.MapBlock.fromKeyValueBlock; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.block.RowBlock.fromFieldBlocks; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RowType.withDefaultFieldNames; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Math.toIntExact; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java index 7f8df2e9e9007..8572a8e739010 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java @@ -15,6 +15,10 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.BufferState; @@ -32,13 +36,9 @@ import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.OptimizedPartitionedOutputFactory; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.VariableWidthBlock; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; @@ -69,6 +69,15 @@ import static com.facebook.presto.block.BlockAssertions.createRandomLongsBlock; import static com.facebook.presto.block.BlockAssertions.createRandomStringBlock; import static com.facebook.presto.block.BlockAssertions.wrapBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.RowType.withDefaultFieldNames; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.execution.buffer.BufferState.OPEN; import static com.facebook.presto.execution.buffer.BufferState.TERMINAL_BUFFER_STATES; import static com.facebook.presto.execution.buffer.OutputBuffers.BufferType.PARTITIONED; @@ -77,15 +86,6 @@ import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.operator.PageAssertions.mergePages; import static com.facebook.presto.operator.PageAssertions.updateBlockTypesWithHashBlockAndNullBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.RowType.withDefaultFieldNames; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java index 2137cd9d19e05..514e4389d5b8e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java @@ -14,7 +14,12 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.DecimalParseResult; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.BuiltInFunction; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.metadata.Metadata; @@ -23,10 +28,6 @@ import com.facebook.presto.spi.Plugin; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.type.DecimalParseResult; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.google.common.collect.ImmutableList; @@ -41,10 +42,10 @@ import static com.facebook.airlift.testing.Closeables.closeAllRuntimeException; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; import static java.lang.String.format; import static java.util.Objects.requireNonNull; import static org.testng.Assert.assertEquals; @@ -166,9 +167,11 @@ protected void assertNotSupported(String projection, String message) functionAssertions.executeProjectionWithFullEngine(projection); fail("expected exception"); } - catch (PrestoException e) { + catch (PrestoException | NotSupportedException e) { try { - assertEquals(e.getErrorCode(), NOT_SUPPORTED.toErrorCode()); + if (e instanceof PrestoException) { + assertEquals(((PrestoException) e).getErrorCode(), NOT_SUPPORTED.toErrorCode()); + } assertEquals(e.getMessage(), message); } catch (Throwable failure) { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestRegexpFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestRegexpFunctions.java index 702646241b633..897368d3d57e6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestRegexpFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestRegexpFunctions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.RegexLibrary; import com.google.common.collect.ImmutableList; @@ -28,10 +28,10 @@ import java.util.ArrayList; import java.util.List; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; public abstract class AbstractTestRegexpFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java index 5168d8d6d4fe4..072828fbf501d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.base.Verify; @@ -55,9 +55,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java index 8d80b9a03e087..6c35be92ad803 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java @@ -13,7 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.metadata.FunctionManager; @@ -22,8 +27,6 @@ import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; @@ -32,9 +35,6 @@ import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.base.Verify; @@ -63,6 +63,10 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BenchmarkArrayFilter.ExactArrayFilterFunction.EXACT_ARRAY_FILTER_FUNCTION; @@ -70,10 +74,6 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java index f2a25cc9d6a88..069d9ea4eefe9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java @@ -13,14 +13,17 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.OperatorDependency; @@ -29,9 +32,6 @@ import com.facebook.presto.spi.function.TypeParameter; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -61,13 +61,13 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; +import static com.facebook.presto.common.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.operator.scalar.CombineHashFunction.getHash; -import static com.facebook.presto.spi.type.ArrayType.ARRAY_NULL_ELEMENT_MSG; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java index 0cf0a5b0118ba..29c258378f803 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -52,12 +52,12 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java index 7a65dccd05500..19b9f838c67a8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -48,10 +48,10 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java index 0bb6ae4920d54..d88f128b3b587 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.base.Verify; @@ -54,9 +54,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java index fbe31efde6054..8bdcdfc6d99c5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -56,10 +56,10 @@ import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java index 1820410ce7e2c..f6e0e3d008260 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java @@ -13,14 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; @@ -28,8 +30,6 @@ import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.base.Verify; @@ -57,10 +57,10 @@ import java.util.stream.Collectors; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java index 274e4a308d19a..1937ac7c0e58e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; @@ -20,9 +22,7 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -51,10 +51,10 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java index 1c0ff2c85fd17..a89211f8d4cbd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -52,13 +52,13 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java index ce0d4a1cc6e2c..626f561b91f49 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -51,13 +51,13 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java index 2e8e7a935fbc7..b226c9831c0fe 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.MapType; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -52,10 +52,10 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java index 95516429334df..58eac170c886d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -55,10 +55,10 @@ import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java index 342c091657295..3be1e56f2f971 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.MapType; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -48,11 +48,11 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRoundFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRoundFunction.java index 5c90a730116b8..c58e78155d3fa 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRoundFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRoundFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; import org.openjdk.jmh.annotations.Measurement; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java index 2588448c5be45..c1e88f2d87867 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -47,12 +47,12 @@ import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.block.RowBlock.fromFieldBlocks; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.block.RowBlock.fromFieldBlocks; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java index 2c8db86ec1813..cdfc73f96ceaf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -54,11 +54,11 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java index 108113c8cbc97..99f46a070b84a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java @@ -14,19 +14,19 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; @@ -55,13 +55,13 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeUtils.writeNativeValue; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.TypeUtils.writeNativeValue; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypeSignatures; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithInvalidTypeParameters.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithInvalidTypeParameters.java index e0d8203e51824..1985c45062d41 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithInvalidTypeParameters.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithInvalidTypeParameters.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; @ScalarFunction("good1") public final class ConstructorWithInvalidTypeParameters diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithValidTypeParameters.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithValidTypeParameters.java index fffd92b5f04f3..6240733b8b3c6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithValidTypeParameters.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/ConstructorWithValidTypeParameters.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; @ScalarFunction("good1") public final class ConstructorWithValidTypeParameters diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/CustomFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/CustomFunctions.java index 2f96e89bdb073..7800f94cea768 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/CustomFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/CustomFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; public final class CustomFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java index 2b13c1674bcab..90ffbb726f847 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java @@ -14,6 +14,13 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; +import com.facebook.presto.common.InvalidFunctionArgumentException; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.BuiltInFunction; import com.facebook.presto.metadata.FunctionListBuilder; @@ -46,17 +53,11 @@ import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.predicate.Utils; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.PageSourceProvider; import com.facebook.presto.sql.analyzer.ExpressionAnalysis; import com.facebook.presto.sql.analyzer.FeaturesConfig; @@ -118,19 +119,19 @@ import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; import static com.facebook.presto.block.BlockAssertions.createTimestampsWithTimezoneBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.HARD_AFFINITY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.ParsingUtil.createParsingOptions; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.analyzeExpressions; @@ -334,9 +335,11 @@ public void assertInvalidFunction(String projection, StandardErrorCode errorCode evaluateInvalid(projection); fail("Expected to throw a PrestoException with message matching " + messagePattern); } - catch (PrestoException e) { + catch (PrestoException | InvalidFunctionArgumentException e) { try { - assertEquals(e.getErrorCode(), errorCode.toErrorCode()); + if (e instanceof PrestoException) { + assertEquals(((PrestoException) e).getErrorCode(), errorCode.toErrorCode()); + } assertTrue(e.getMessage().equals(messagePattern) || e.getMessage().matches(messagePattern), format("Error message [%s] doesn't match [%s]", e.getMessage(), messagePattern)); } catch (Throwable failure) { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayCombinationsFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayCombinationsFunction.java index 53b75bbd2afc1..20446ca5de981 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayCombinationsFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayCombinationsFunction.java @@ -14,18 +14,18 @@ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ContiguousSet; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.ArrayCombinationsFunction.combinationCount; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.google.common.math.LongMath.factorial; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayExceptFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayExceptFunction.java index 370f6cb2d7396..f3ca4d7ea3f93 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayExceptFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayExceptFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFilterFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFilterFunction.java index e01e72180ed4a..a96ea44e0a7f9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFilterFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFilterFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFunctions.java index 0465499f18f65..aff62b7233a53 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.base.Joiner; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static java.util.Collections.nCopies; public class TestArrayFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayIntersectFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayIntersectFunction.java index 46f9db468397d..6bfc99d5cb328 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayIntersectFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayIntersectFunction.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayMatchFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayMatchFunctions.java index a7062dee06d79..91c01c7336c6e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayMatchFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayMatchFunctions.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.BooleanType; +import com.facebook.presto.common.type.BooleanType; import org.testng.annotations.Test; public class TestArrayMatchFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayNgramsFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayNgramsFunction.java index b19771df9fd5b..904f9eb39386b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayNgramsFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayNgramsFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.util.Arrays.asList; public class TestArrayNgramsFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayReduceFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayReduceFunction.java index 28e4c2889413b..d7621386042f0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayReduceFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayReduceFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.FUNCTION_NOT_FOUND; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArraySortFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArraySortFunction.java index eea82618f92b8..a0df75f03b29d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArraySortFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArraySortFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static java.util.Arrays.asList; public class TestArraySortFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayTransformFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayTransformFunction.java index 8254e40379058..863cd985a0ec8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayTransformFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestArrayTransformFunction.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBitwiseFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBitwiseFunctions.java index bf39e2e05c1d1..c8b73f89becf7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBitwiseFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBitwiseFunctions.java @@ -15,8 +15,8 @@ import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static java.lang.String.format; public class TestBitwiseFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBlockAndPositionNullConvention.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBlockAndPositionNullConvention.java index 75a98e7bc4471..7b65fa3ca8d61 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBlockAndPositionNullConvention.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestBlockAndPositionNullConvention.java @@ -13,26 +13,26 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.util.concurrent.atomic.AtomicBoolean; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java index f4884663e9a33..9f76423a08d6a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestColorFunctions.java @@ -17,6 +17,7 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.operator.scalar.ColorFunctions.bar; import static com.facebook.presto.operator.scalar.ColorFunctions.color; import static com.facebook.presto.operator.scalar.ColorFunctions.getBlue; @@ -25,7 +26,6 @@ import static com.facebook.presto.operator.scalar.ColorFunctions.parseRgb; import static com.facebook.presto.operator.scalar.ColorFunctions.render; import static com.facebook.presto.operator.scalar.ColorFunctions.rgb; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestConditions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestConditions.java index 1b603864d61a9..ba05748c00470 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestConditions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestConditions.java @@ -15,13 +15,13 @@ import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; public class TestConditions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestCustomFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestCustomFunctions.java index e08bba50ddedd..5ab166f95bc8b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestCustomFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestCustomFunctions.java @@ -16,8 +16,8 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestCustomFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDataSizeFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDataSizeFunctions.java index 28d9747ea0965..3a333ad38b0c0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDataSizeFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDataSizeFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; public class TestDataSizeFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctions.java index 38469441e0133..fc52594bf930b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctions.java @@ -15,14 +15,14 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimestampType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimestampType; import org.joda.time.DateTime; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestDateTimeFunctions extends TestDateTimeFunctionsBase diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsBase.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsBase.java index e3bb5a13061fc..2b79615790b06 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsBase.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsBase.java @@ -14,17 +14,17 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.testing.TestingSession; import com.facebook.presto.type.SqlIntervalDayTime; @@ -51,17 +51,16 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SystemSessionProperties.isLegacyTimestamp; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.DateTimeFunctions.currentDate; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; @@ -194,9 +193,9 @@ public void testFromUnixTimeWithOffset() assertFunction("from_unixtime(" + seconds + ", " + timeZoneHoursOffset + ", " + timezoneMinutesOffset + ")", TIMESTAMP_WITH_TIME_ZONE, toTimestampWithTimeZone(expected)); // test invalid minute offsets - assertInvalidFunction("from_unixtime(0, 1, 10000)", INVALID_FUNCTION_ARGUMENT); - assertInvalidFunction("from_unixtime(0, 10000, 0)", INVALID_FUNCTION_ARGUMENT); - assertInvalidFunction("from_unixtime(0, -100, 100)", INVALID_FUNCTION_ARGUMENT); + assertInvalidFunction("from_unixtime(0, 1, 10000)", "Invalid offset minutes 10060"); + assertInvalidFunction("from_unixtime(0, 10000, 0)", "Invalid offset minutes 600000"); + assertInvalidFunction("from_unixtime(0, -100, 100)", "Invalid offset minutes -5900"); } @Test diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsLegacy.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsLegacy.java index 77cfd0699f6ff..97527e6b00d10 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsLegacy.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestDateTimeFunctionsLegacy.java @@ -15,15 +15,15 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimestampType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimestampType; import org.joda.time.DateTime; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestDateTimeFunctionsLegacy extends TestDateTimeFunctionsBase diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestHyperLogLogFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestHyperLogLogFunctions.java index d9dd24b886707..eb20e1df18b5e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestHyperLogLogFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestHyperLogLogFunctions.java @@ -23,8 +23,8 @@ import java.util.Iterator; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestHyperLogLogFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIpPrefixFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIpPrefixFunctions.java index 44ab6d32228ae..f30361c859d46 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIpPrefixFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIpPrefixFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.type.IpAddressType.IPADDRESS; import static com.facebook.presto.type.IpPrefixType.IPPREFIX; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIsNullAnnotation.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIsNullAnnotation.java index 410c59476a223..9ba601585252e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIsNullAnnotation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestIsNullAnnotation.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonExtract.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonExtract.java index 0cfcc95765c0b..0e34bceee4846 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonExtract.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonExtract.java @@ -25,13 +25,13 @@ import java.io.IOException; import java.util.List; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.scalar.JsonExtract.JsonExtractor; import static com.facebook.presto.operator.scalar.JsonExtract.JsonValueJsonExtractor; import static com.facebook.presto.operator.scalar.JsonExtract.ObjectFieldJsonExtractor; import static com.facebook.presto.operator.scalar.JsonExtract.ScalarValueJsonExtractor; import static com.facebook.presto.operator.scalar.JsonExtract.generateExtractor; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonFunctions.java index ffb14f0a6f464..c50e26e66a838 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonFunctions.java @@ -15,11 +15,11 @@ import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonHashTable.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonHashTable.java index 9fd5cff948f9c..4066a389b88b4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonHashTable.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestJsonHashTable.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.util.JsonUtil.HashTable; import io.airlift.slice.Slice; import org.testng.annotations.Test; @@ -24,8 +24,8 @@ import java.util.Random; import java.util.Set; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.wrappedBuffer; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestLambdaExpression.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestLambdaExpression.java index a2e0fdd33bd11..8e96cf411b958 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestLambdaExpression.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestLambdaExpression.java @@ -14,23 +14,23 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.ApplyFunction.APPLY_FUNCTION; import static com.facebook.presto.operator.scalar.InvokeFunction.INVOKE_FUNCTION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapFilterFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapFilterFunction.java index 8f9c25d1244d1..c1de40022debc 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapFilterFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapFilterFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -21,12 +21,12 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformKeyFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformKeyFunction.java index ab822e0335e39..50052e450f982 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformKeyFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformKeyFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -21,12 +21,12 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformValueFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformValueFunction.java index 2a864c19d6d13..cfdcc2afc8285 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformValueFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapTransformValueFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -21,12 +21,12 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapZipWithFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapZipWithFunction.java index 204a9edf05d23..a472f2ed6b3ba 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapZipWithFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMapZipWithFunction.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMathFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMathFunctions.java index 62bf57223657e..c2e8e483551e1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMathFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestMathFunctions.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static java.util.Collections.nCopies; public class TestMathFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java index 2b06fff68f1e9..8243584a62bd0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestOperatorValidation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.ADD; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java index bc254c224ab60..5dab04eeeaa1c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.facebook.presto.sql.relational.RowExpressionDeterminismEvaluator; @@ -43,12 +43,12 @@ import static com.facebook.presto.block.BlockAssertions.createRLEBlock; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.project.PageProcessor.MAX_BATCH_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestParametricScalarImplementationValidation.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestParametricScalarImplementationValidation.java index 3f3c9f3758012..16c3e8678fd6d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestParametricScalarImplementationValidation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestParametricScalarImplementationValidation.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java index 3d03d8052d98d..016c9a52faca4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestProvidedBlockBuilderReturnPlaceConvention.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.testng.annotations.BeforeClass; @@ -37,6 +37,12 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicLong; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; @@ -46,12 +52,6 @@ import static com.facebook.presto.operator.scalar.TestProvidedBlockBuilderReturnPlaceConvention.FunctionWithProvidedBlockReturnPlaceConvention2.PROVIDED_BLOCKBUILDER_CONVENTION2; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.primitives.Primitives.wrap; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java index c541fae8f6177..6c5295cab8a21 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestQuantileDigestFunctions.java @@ -14,16 +14,16 @@ package com.facebook.presto.operator.scalar; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeParameter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeParameter; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.QuantileDigestParametricType.QDIGEST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.QuantileDigestParametricType.QDIGEST; import static io.airlift.slice.Slices.wrappedBuffer; import static java.lang.String.format; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarParser.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarParser.java index 208e77f0e4c06..7cdd51bc8064a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarParser.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarParser.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestScalarParser extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarValidation.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarValidation.java index 6cdfb9d831fef..435289bdf47de 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarValidation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestScalarValidation.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.IsNull; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; import javax.annotation.Nullable; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestStringFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestStringFunctions.java index 79ad038523e97..8f97c9534e8c1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestStringFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestStringFunctions.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.type.LiteralParameter; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -29,15 +29,15 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.FUNCTION_NOT_FOUND; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static com.google.common.base.Strings.repeat; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTDigestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTDigestFunctions.java index e688a1669c89d..a7df5ea0ba524 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTDigestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTDigestFunctions.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.type.SqlVarbinary; import com.facebook.presto.tdigest.TDigest; import com.google.common.base.Joiner; import org.apache.commons.math3.distribution.BinomialDistribution; @@ -28,9 +28,9 @@ import java.util.Collections; import java.util.List; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.tdigest.TDigest.createTDigest; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTryFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTryFunction.java index 9e0b7bcf3730d..bf2db08c3146d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTryFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTryFunction.java @@ -13,22 +13,22 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.SqlDecimal; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.SqlDecimal; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTypeOfFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTypeOfFunction.java index 390f6296b00aa..41c97b9297583 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTypeOfFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestTypeOfFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.VarcharType; import org.testng.annotations.Test; public class TestTypeOfFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestUrlFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestUrlFunctions.java index 465906eb4f31a..b2a71d6f716b1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestUrlFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestUrlFunctions.java @@ -15,8 +15,8 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestUrlFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java index 12a718b49849b..1ffd140783e57 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestVarbinaryFunctions.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.type.VarbinaryOperators; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -23,14 +23,14 @@ import java.util.Base64; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.io.BaseEncoding.base16; import static java.lang.String.format; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestWordStemFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestWordStemFunction.java index 09c278e088f18..d62374be8040c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestWordStemFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestWordStemFunction.java @@ -15,7 +15,7 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestWordStemFunction extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipFunction.java index d29dfb18bf1f6..45b2beee47e28 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipFunction.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; import java.util.List; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.ZipFunction.MAX_ARITY; import static com.facebook.presto.operator.scalar.ZipFunction.MIN_ARITY; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static java.lang.String.format; import static java.lang.String.join; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipWithFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipWithFunction.java index 550ce3f3bd0e0..d7d4341b5ae9d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipWithFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestZipWithFunction.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.operator.scalar; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static java.util.Arrays.asList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java b/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java index 3d93f158ed569..c90e00f683210 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.FileSingleStreamSpillerFactory; import com.facebook.presto.spiller.GenericSpillerFactory; import com.facebook.presto.spiller.Spiller; @@ -46,11 +46,11 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.concurrent.TimeUnit.SECONDS; @State(Scope.Thread) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/unnest/BenchmarkCopyBlock.java b/presto-main/src/test/java/com/facebook/presto/operator/unnest/BenchmarkCopyBlock.java index 59635ac25c9b2..676fefe4360c1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/unnest/BenchmarkCopyBlock.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/unnest/BenchmarkCopyBlock.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.unnest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.LongArrayBlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; @@ -42,8 +42,8 @@ import java.util.Optional; import static com.facebook.presto.block.BlockAssertions.createRandomBlockForType; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static java.util.concurrent.TimeUnit.MICROSECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java index 5fad62a749661..a2bfa511c7533 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java @@ -15,6 +15,9 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockAssertions.Encoding; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; @@ -22,9 +25,6 @@ import com.facebook.presto.operator.PageAssertions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -45,6 +45,16 @@ import static com.facebook.presto.block.BlockAssertions.Encoding.DICTIONARY; import static com.facebook.presto.block.BlockAssertions.Encoding.RUN_LENGTH; import static com.facebook.presto.block.BlockAssertions.createMapType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RowType.withDefaultFieldNames; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.OperatorAssertion.assertOperatorEquals; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; @@ -52,16 +62,6 @@ import static com.facebook.presto.operator.unnest.TestUnnesterUtil.buildOutputTypes; import static com.facebook.presto.operator.unnest.TestUnnesterUtil.calculateMaxCardinalities; import static com.facebook.presto.operator.unnest.TestUnnesterUtil.mergePages; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RowType.withDefaultFieldNames; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.TestingTaskContext.createTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java index 62bd3ea5338be..dc94b85c7047c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.operator.unnest; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Verify.verify; import static java.lang.Integer.max; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestAggregateWindowFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestAggregateWindowFunction.java index 32fd9c6ee7248..386b46f53d3cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestAggregateWindowFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestAggregateWindowFunction.java @@ -18,9 +18,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestAggregateWindowFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestApproxPercentileWindow.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestApproxPercentileWindow.java index e950407318c4a..32873d73cd1dd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestApproxPercentileWindow.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestApproxPercentileWindow.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestApproxPercentileWindow diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestCumulativeDistributionFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestCumulativeDistributionFunction.java index ef1ea1fa3697b..cfae995b79ba3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestCumulativeDistributionFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestCumulativeDistributionFunction.java @@ -16,10 +16,10 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestCumulativeDistributionFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestDenseRankFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestDenseRankFunction.java index 595df6fe008ec..332cf2216cf01 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestDenseRankFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestDenseRankFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestDenseRankFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestFirstValueFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestFirstValueFunction.java index 745b533208ff0..0bdec3dc54470 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestFirstValueFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestFirstValueFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestFirstValueFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLagFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLagFunction.java index ba5af5dbb4110..1e226e3b9011d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLagFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLagFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestLagFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLastValueFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLastValueFunction.java index 58ab31865e39c..5a7f4909dfc11 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLastValueFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLastValueFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestLastValueFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLeadFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLeadFunction.java index 1906b29b5b7ac..d945da7668a16 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestLeadFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestLeadFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestLeadFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestMapAggFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestMapAggFunction.java index 8a763c83b0381..f33e0545e4f67 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestMapAggFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestMapAggFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.window; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.VarcharType; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestMultipleWindowSpecifications.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestMultipleWindowSpecifications.java index c208cd9cff74a..ce63012430d27 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestMultipleWindowSpecifications.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestMultipleWindowSpecifications.java @@ -16,8 +16,8 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestMultipleWindowSpecifications diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestNTileFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestNTileFunction.java index dd94c42b66f8d..bfc9647a74b7e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestNTileFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestNTileFunction.java @@ -16,8 +16,8 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestNTileFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestNthValueFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestNthValueFunction.java index 2ba50684a2ef9..9298289df6213 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestNthValueFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestNthValueFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestNthValueFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestPercentRankFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestPercentRankFunction.java index 188cb73be8090..dca89535ea668 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestPercentRankFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestPercentRankFunction.java @@ -16,10 +16,10 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestPercentRankFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestRankFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestRankFunction.java index be4e6ad8216d3..3b2ee03c45de8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestRankFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestRankFunction.java @@ -16,9 +16,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; public class TestRankFunction diff --git a/presto-main/src/test/java/com/facebook/presto/operator/window/TestRowNumberFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/window/TestRowNumberFunction.java index cb2f694ec3dc9..9728d381b5bc8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/window/TestRowNumberFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/window/TestRowNumberFunction.java @@ -20,9 +20,9 @@ import java.util.stream.Collectors; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/server/TestQuerySessionSupplier.java b/presto-main/src/test/java/com/facebook/presto/server/TestQuerySessionSupplier.java index 3eae59faf8a33..1196725f81a58 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/TestQuerySessionSupplier.java +++ b/presto-main/src/test/java/com/facebook/presto/server/TestQuerySessionSupplier.java @@ -14,9 +14,9 @@ package com.facebook.presto.server; import com.facebook.presto.Session; +import com.facebook.presto.common.type.TimeZoneNotSupportedException; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.security.AllowAllAccessControl; -import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.QueryId; import com.facebook.presto.sql.SqlEnvironmentConfig; import com.google.common.collect.ImmutableListMultimap; @@ -41,7 +41,7 @@ import static com.facebook.presto.client.PrestoHeaders.PRESTO_SOURCE; import static com.facebook.presto.client.PrestoHeaders.PRESTO_TIME_ZONE; import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; import static com.facebook.presto.transaction.InMemoryTransactionManager.createTestTransactionManager; import static org.testng.Assert.assertEquals; @@ -116,7 +116,7 @@ public void testEmptyClientTags() assertEquals(context2.getClientTags(), ImmutableSet.of()); } - @Test(expectedExceptions = PrestoException.class) + @Test(expectedExceptions = TimeZoneNotSupportedException.class) public void testInvalidTimeZone() { HttpServletRequest request = new MockHttpServletRequest( diff --git a/presto-main/src/test/java/com/facebook/presto/server/TestServer.java b/presto-main/src/test/java/com/facebook/presto/server/TestServer.java index 67d4ccf50782a..3c3e23f3d39de 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/TestServer.java +++ b/presto-main/src/test/java/com/facebook/presto/server/TestServer.java @@ -23,9 +23,9 @@ import com.facebook.airlift.testing.Closeables; import com.facebook.presto.client.QueryError; import com.facebook.presto.client.QueryResults; +import com.facebook.presto.common.type.TimeZoneNotSupportedException; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.type.TimeZoneNotSupportedException; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.AfterMethod; @@ -109,9 +109,6 @@ public void testInvalidSessionError() assertNotNull(queryError); TimeZoneNotSupportedException expected = new TimeZoneNotSupportedException(invalidTimeZone); - assertEquals(queryError.getErrorCode(), expected.getErrorCode().getCode()); - assertEquals(queryError.getErrorName(), expected.getErrorCode().getName()); - assertEquals(queryError.getErrorType(), expected.getErrorCode().getType().name()); assertEquals(queryError.getMessage(), expected.getMessage()); } @@ -227,9 +224,9 @@ public void testNoTransactionSupport() public void testStatusPing() { Request request = prepareHead() - .setUri(uriFor("/v1/status")) - .setFollowRedirects(false) - .build(); + .setUri(uriFor("/v1/status")) + .setFollowRedirects(false) + .build(); StatusResponseHandler.StatusResponse response = client.execute(request, createStatusResponseHandler()); assertEquals(response.getStatusCode(), OK.getStatusCode(), "Status code"); assertEquals(response.getHeader(CONTENT_TYPE), APPLICATION_JSON, "Content Type"); diff --git a/presto-main/src/test/java/com/facebook/presto/server/remotetask/TestHttpRemoteTask.java b/presto-main/src/test/java/com/facebook/presto/server/remotetask/TestHttpRemoteTask.java index 32633c2b2634f..b149c6cd7fd6c 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/remotetask/TestHttpRemoteTask.java +++ b/presto-main/src/test/java/com/facebook/presto/server/remotetask/TestHttpRemoteTask.java @@ -20,6 +20,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonModule; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.NodeTaskMap; import com.facebook.presto.execution.QueryManagerConfig; @@ -45,8 +47,6 @@ import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.Serialization; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.PlanFragment; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java index 912f25c67bc0d..d63013f17e905 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java @@ -15,13 +15,13 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.page.PagesSerde; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -35,12 +35,12 @@ import java.util.List; import java.util.concurrent.ExecutionException; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; import static java.lang.Double.doubleToLongBits; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java index cc81c2fd1da82..4d1d4934ac066 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java @@ -14,14 +14,14 @@ package com.facebook.presto.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.PageAssertions; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.page.PageCodecMarker; import com.facebook.presto.spi.page.PagesSerdeUtil; import com.facebook.presto.spi.page.SerializedPage; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterators; @@ -36,10 +36,10 @@ import java.util.Iterator; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.MoreFiles.listFiles; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java index b2c4d12c44a2e..9059e3694b392 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java @@ -14,10 +14,10 @@ package com.facebook.presto.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; @@ -34,8 +34,8 @@ import java.util.List; import java.util.concurrent.Executors; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spiller.FileSingleStreamSpillerFactory.SPILL_FILE_PREFIX; import static com.facebook.presto.spiller.FileSingleStreamSpillerFactory.SPILL_FILE_SUFFIX; import static com.google.common.io.MoreFiles.deleteRecursively; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java index 4660e7d7a39df..137a537e28cf1 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java @@ -16,13 +16,13 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; import com.facebook.presto.operator.TestingOperatorContext; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.spiller.PartitioningSpiller.PartitioningSpillResult; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; @@ -41,10 +41,10 @@ import java.util.function.IntPredicate; import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java index de822ec14f3b7..716e094ef1868 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.TestingPagesSerdeFactory; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.spiller.SpillCipher; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.Assert.ThrowingRunnable; import org.testng.annotations.Test; @@ -28,10 +28,10 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.page.PageCodecMarker.ENCRYPTED; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import static org.testng.Assert.expectThrows; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestExpressionInterpreter.java b/presto-main/src/test/java/com/facebook/presto/sql/TestExpressionInterpreter.java index db2e2b395bd94..d56f950e25142 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestExpressionInterpreter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestExpressionInterpreter.java @@ -14,14 +14,19 @@ package com.facebook.presto.sql; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.BlockSerdeUtil; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.scalar.FunctionAssertions; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.BlockSerdeUtil; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; @@ -29,11 +34,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.ExpressionInterpreter; @@ -71,21 +71,21 @@ import java.util.stream.IntStream; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.ApplyFunction.APPLY_FUNCTION; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.SERIALIZABLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.ExpressionFormatter.formatExpression; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.ParsingUtil.createParsingOptions; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestLikeFunctions.java b/presto-main/src/test/java/com/facebook/presto/sql/TestLikeFunctions.java index aa68abdb763c6..496cd578519bf 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestLikeFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestLikeFunctions.java @@ -20,7 +20,7 @@ import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.type.LikeFunctions.castCharToLikePattern; import static com.facebook.presto.type.LikeFunctions.isLikePattern; import static com.facebook.presto.type.LikeFunctions.likeChar; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java b/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java index 11236f20eef40..34d096722bc1e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestRowExpressionSerde.java @@ -19,23 +19,23 @@ import com.facebook.airlift.stats.cardinality.HyperLogLog; import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.block.BlockJsonSerde; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.block.IntArrayBlock; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.HandleJsonModule; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.block.IntArrayBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.Scope; @@ -65,18 +65,18 @@ import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.ROW_CONSTRUCTOR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.parser.ParsingOptions.DecimalLiteralTreatment.AS_DOUBLE; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestSqlToRowExpressionTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/TestSqlToRowExpressionTranslator.java index ba87069a46f0e..44355d7f51f07 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestSqlToRowExpressionTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestSqlToRowExpressionTranslator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.tree.CoalesceExpression; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.LongLiteral; @@ -23,9 +23,9 @@ import java.math.BigDecimal; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.testing.assertions.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/TestingRowExpressionTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/TestingRowExpressionTranslator.java index e6cb9d073b8fc..3c1be34b3692f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/TestingRowExpressionTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/TestingRowExpressionTranslator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.sql; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; import com.facebook.presto.sql.analyzer.Scope; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestAnalyzer.java b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestAnalyzer.java index 91f52f19dbb49..be162f965e7da 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestAnalyzer.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestAnalyzer.java @@ -17,6 +17,8 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.informationSchema.InformationSchemaConnector; import com.facebook.presto.connector.system.SystemConnector; import com.facebook.presto.execution.QueryManagerConfig; @@ -49,8 +51,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.session.PropertyMetadata; import com.facebook.presto.spi.transaction.IsolationLevel; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.NodeLocation; import com.facebook.presto.sql.tree.Statement; @@ -66,15 +66,15 @@ import java.util.Optional; import java.util.function.Consumer; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.ViewDefinition.ViewColumn; import static com.facebook.presto.operator.scalar.ApplyFunction.APPLY_FUNCTION; import static com.facebook.presto.spi.ConnectorId.createInformationSchemaConnectorId; import static com.facebook.presto.spi.ConnectorId.createSystemTablesConnectorId; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.AMBIGUOUS_ATTRIBUTE; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.CANNOT_HAVE_AGGREGATIONS_WINDOWS_OR_GROUPING; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.CATALOG_NOT_SPECIFIED; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestScope.java b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestScope.java index 416df9c1ab63e..276c1cf3cac24 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestScope.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/analyzer/TestScope.java @@ -20,7 +20,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java index 13f81f0019788..3789150d675df 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -49,13 +49,13 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java index a05fd56319cb7..39eadb88b8f75 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java @@ -15,17 +15,17 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.relational.RowExpressionOptimizer; @@ -57,12 +57,12 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.scalar.FunctionAssertions.createExpression; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static java.util.Collections.emptyList; import static java.util.Locale.ENGLISH; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java index 38f699e2874a2..34d95e5b5b03f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.openjdk.jmh.annotations.Benchmark; @@ -44,12 +44,12 @@ import java.util.Random; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; import static com.facebook.presto.sql.relational.Expressions.specialForm; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java index 9d9173669f7d6..ecb85a75f374d 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java @@ -15,6 +15,7 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.relational.RowExpressionOptimizer; @@ -60,12 +60,12 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.scalar.FunctionAssertions.createExpression; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static java.util.Collections.emptyList; import static java.util.Locale.ENGLISH; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java index 9e7692ae858c7..c3048e3f7e60a 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.gen; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.relational.SqlToRowExpressionTranslator; @@ -33,7 +33,7 @@ import java.util.Map; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.collectCSEByLevel; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestExpressionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestExpressionCompiler.java index d47a1716cb0a5..962733d9606fb 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestExpressionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestExpressionCompiler.java @@ -15,6 +15,13 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.log.Logging; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.operator.scalar.BitwiseFunctions; import com.facebook.presto.operator.scalar.DateTimeFunctions; import com.facebook.presto.operator.scalar.FunctionAssertions; @@ -24,13 +31,6 @@ import com.facebook.presto.operator.scalar.MathFunctions; import com.facebook.presto.operator.scalar.StringFunctions; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.tree.Extract.Field; import com.facebook.presto.type.LikeFunctions; import com.google.common.base.Preconditions; @@ -69,21 +69,21 @@ import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.airlift.testing.Closeables.closeAllRuntimeException; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.JoniRegexpCasts.joniRegexp; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestInCodeGenerator.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestInCodeGenerator.java index cb36ffd3ac955..cfa14ca83e240 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestInCodeGenerator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestInCodeGenerator.java @@ -23,13 +23,13 @@ import java.util.Collections; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.gen.InCodeGenerator.SwitchGenerationCase.DIRECT_SWITCH; import static com.facebook.presto.sql.gen.InCodeGenerator.SwitchGenerationCase.HASH_SWITCH; import static com.facebook.presto.sql.gen.InCodeGenerator.SwitchGenerationCase.SET_CONTAINS; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java index 04fef35ddcc9a..8398d190dbc08 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java @@ -14,14 +14,14 @@ package com.facebook.presto.sql.gen; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.PagesHashStrategy; import com.facebook.presto.operator.SimplePagesHashStrategy; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler.PagesHashStrategyFactory; import com.facebook.presto.type.TypeUtils; @@ -36,11 +36,11 @@ import java.util.OptionalInt; import static com.facebook.presto.block.BlockAssertions.assertBlockEquals; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.PageAssertions.assertPageEquals; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.type.TypeUtils.hashPosition; import static com.facebook.presto.type.TypeUtils.positionEqualsPosition; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index 64987fda1973a..7b96b0a5036e8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; @@ -22,8 +24,6 @@ import com.facebook.presto.operator.project.SelectedPositions; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.google.common.collect.ImmutableList; @@ -36,11 +36,11 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java index 20862fd0baa8f..892c39f41c792 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.spi.relation.PredicateCompiler; @@ -31,9 +31,9 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.MULTIPLY; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java index 79647ed73103e..33fe38480dadd 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestVarArgsToArrayAdapterGenerator.java @@ -15,6 +15,7 @@ import com.facebook.presto.annotation.UsedByGeneratedCode; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; @@ -33,11 +33,11 @@ import java.util.Optional; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.sql.gen.TestVarArgsToArrayAdapterGenerator.TestVarArgsSum.VAR_ARGS_SUM; import static com.facebook.presto.sql.gen.VarArgsToArrayAdapterGenerator.generateVarArgsToArrayAdapter; import static com.facebook.presto.util.Reflection.methodHandle; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestCanonicalize.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestCanonicalize.java index fba123db13353..ac2ee3f791186 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestCanonicalize.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestCanonicalize.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.sql.planner.assertions.BasePlanTest; import com.facebook.presto.sql.planner.assertions.ExpectedValueProvider; import com.facebook.presto.sql.planner.iterative.IterativeOptimizer; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java index a86de1f44eaec..4ed66c2c80b6b 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.FilterNode; import com.facebook.presto.spi.plan.LimitNode; @@ -71,10 +71,10 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.globalAggregation; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.and; import static com.facebook.presto.sql.ExpressionUtils.combineConjuncts; import static com.facebook.presto.sql.ExpressionUtils.or; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEqualityInference.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEqualityInference.java index 77a69a013aac5..aa69af3053b94 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEqualityInference.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEqualityInference.java @@ -49,7 +49,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.QueryUtil.identifier; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.EQUAL; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.GREATER_THAN; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java index 8c8eb1cb47c3e..eb6cab9eae902 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.ExpressionDomainTranslator.ExtractionResult; import com.facebook.presto.sql.tree.BetweenPredicate; @@ -56,23 +56,23 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.ExpressionUtils.and; import static com.facebook.presto.sql.ExpressionUtils.or; import static com.facebook.presto.sql.planner.LiteralEncoder.getMagicLiteralFunctionSignature; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java index 688ba5032905e..ddd274d9c9300 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java @@ -50,14 +50,14 @@ import static com.facebook.presto.SystemSessionProperties.FORCE_SINGLE_NODE_OUTPUT; import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.OPTIMIZE_HASH_GENERATION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.SUBQUERY_MULTIPLE_ROWS; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; import static com.facebook.presto.spi.plan.AggregationNode.Step.FINAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.any; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.anyNot; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestNullabilityAnalyzer.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestNullabilityAnalyzer.java index fad11fa4daf2f..81d8b33e85911 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestNullabilityAnalyzer.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestNullabilityAnalyzer.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; @@ -31,8 +31,8 @@ import java.util.Collection; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.RowType.field; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.RowType.field; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java index 5c556c1ba3a4a..d8627db1d52cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestPredicatePushdown.java @@ -31,7 +31,7 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.any; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.anyTree; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.assignUniqueId; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java index f895edef65ba8..20b32e031c459 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java @@ -14,6 +14,8 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.relational.FunctionResolution; import com.facebook.presto.sql.relational.RowExpressionDomainTranslator; @@ -49,6 +49,21 @@ import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; @@ -58,21 +73,6 @@ import static com.facebook.presto.spi.relation.DomainTranslator.BASIC_COLUMN_EXTRACTOR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.LiteralEncoder.toRowExpression; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java index 7d58ccd2d0407..f6cf1b6884125 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionEqualityInference.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.RowType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.RowType; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.relational.Expressions; import com.google.common.base.Preconditions; @@ -40,11 +40,11 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.MULTIPLY; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.RowType.field; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.expressions.LogicalRowExpressions.and; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.RowType.field; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.RowExpressionEqualityInference.Builder.isInferenceCandidate; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java index 5dcab374a6023..279cb23faaf4f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionFormatter.java @@ -14,19 +14,19 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.LongArrayBlockBuilder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.planPrinter.RowExpressionFormatter; import com.facebook.presto.type.TypeRegistry; @@ -54,21 +54,21 @@ import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; import static com.facebook.presto.common.function.OperatorType.SUBTRACT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java index 62dadca7a66a2..102a33b0bde5b 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.Metadata; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.FilterNode; import com.facebook.presto.spi.plan.LimitNode; @@ -68,6 +68,9 @@ import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; @@ -76,9 +79,6 @@ import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.RowExpressionEqualityInference.Builder.nonInferrableConjuncts; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java index d77449530fb21..dd8591c0c3d27 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionRewriter.java @@ -30,9 +30,9 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.RowExpressionNodeInliner.replaceExpression; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.TestRowExpressionRewriter.NegationExpressionRewriter.rewrite; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java index b536689644407..8e746aca88b2d 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionVariableInliner.java @@ -23,7 +23,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; public class TestRowExpressionVariableInliner diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestSortExpressionExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestSortExpressionExtractor.java index 683752f349418..6e5bfcb695794 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestSortExpressionExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestSortExpressionExtractor.java @@ -28,7 +28,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.extractConjuncts; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java index 163d9b29b3143..1f12f06b04060 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.ColumnHandle; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.plan.WindowNode; import com.facebook.presto.sql.planner.sanity.TypeValidator; @@ -52,14 +52,14 @@ import java.util.UUID; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_FOLLOWING; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_PRECEDING; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableAllocator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableAllocator.java index ddc4caed355cd..11b29fb10e2dd 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableAllocator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableAllocator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; import com.google.common.collect.ImmutableSet; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableExtractor.java index c89bbba3670cf..ece80fb3df536 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestVariableExtractor.java @@ -24,7 +24,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.planner.VariablesExtractor.extractAll; import static com.facebook.presto.sql.planner.VariablesExtractor.extractUnique; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/EquiJoinClauseProvider.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/EquiJoinClauseProvider.java index a3e13f31dc3f5..dc0051d09a992 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/EquiJoinClauseProvider.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/EquiJoinClauseProvider.java @@ -16,7 +16,7 @@ import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.plan.JoinNode; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.util.Objects.requireNonNull; class EquiJoinClauseProvider diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java index f7d5491e3ff7d..b52ccf59d5841 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.ExceptNode; @@ -71,10 +71,10 @@ import java.util.function.Consumer; import java.util.stream.IntStream; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.planner.assertions.MatchResult.NO_MATCH; import static com.facebook.presto.sql.planner.assertions.MatchResult.match; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/SpecificationProvider.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/SpecificationProvider.java index 3150f41b84bcd..8f47cad40cc32 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/SpecificationProvider.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/SpecificationProvider.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.assertions; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TestExpressionVerifier.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TestExpressionVerifier.java index 2b75c922ef5ad..3f563ce3e3e30 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TestExpressionVerifier.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TestExpressionVerifier.java @@ -25,7 +25,7 @@ import org.testng.annotations.Test; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TopNRowNumberMatcher.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TopNRowNumberMatcher.java index 1845dedb38edb..db4ee729c3e33 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TopNRowNumberMatcher.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TopNRowNumberMatcher.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.Symbol; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java index 3b8bde973f301..ae33c240782bc 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java @@ -14,10 +14,10 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.OrderingScheme; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowFrameProvider.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowFrameProvider.java index 05b95d761a5cb..325b1f5f9d5bc 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowFrameProvider.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowFrameProvider.java @@ -21,7 +21,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowMatcher.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowMatcher.java index eab52c8122ac0..b2c3bc9363b96 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowMatcher.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/WindowMatcher.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestAddIntermediateAggregations.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestAddIntermediateAggregations.java index c0434b180a4c7..23826caa45f6d 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestAddIntermediateAggregations.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestAddIntermediateAggregations.java @@ -27,10 +27,10 @@ import static com.facebook.presto.SystemSessionProperties.ENABLE_INTERMEDIATE_AGGREGATIONS; import static com.facebook.presto.SystemSessionProperties.TASK_CONCURRENCY; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.Step.FINAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.INTERMEDIATE; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.anySymbol; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.exchange; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineJoinDistributionType.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineJoinDistributionType.java index 611974ab1233a..2f90b810ca536 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineJoinDistributionType.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineJoinDistributionType.java @@ -35,7 +35,7 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.JOIN_MAX_BROADCAST_TABLE_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.enforceSingleRow; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.equiJoinClause; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.join; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineSemiJoinDistributionType.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineSemiJoinDistributionType.java index e3ec6c8eb8477..76fa1b7f240ab 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineSemiJoinDistributionType.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestDetermineSemiJoinDistributionType.java @@ -46,7 +46,7 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.JOIN_MAX_BROADCAST_TABLE_SIZE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.semiJoin; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEliminateCrossJoins.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEliminateCrossJoins.java index e1a332b556ff9..b5dae64a2beb5 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEliminateCrossJoins.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEliminateCrossJoins.java @@ -35,7 +35,7 @@ import java.util.function.Function; import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.any; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.join; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.node; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroLimit.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroLimit.java index 682362b4459e9..25539fec90b66 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroLimit.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroLimit.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroSample.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroSample.java index 2ed4c8cdd6051..97b8745311deb 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroSample.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestEvaluateZeroSample.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestExpressionRewriteRuleSet.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestExpressionRewriteRuleSet.java index f36d9e6339c5d..78b25513f237f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestExpressionRewriteRuleSet.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestExpressionRewriteRuleSet.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; -import com.facebook.presto.spi.type.DateType; +import com.facebook.presto.common.type.DateType; import com.facebook.presto.sql.planner.assertions.PlanMatchPattern; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; import com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder; @@ -27,7 +27,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.apply; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.filter; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java index 5b9b7b58c62ca..b83c9645e9ebd 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestJoinNodeFlattener.java @@ -37,9 +37,9 @@ import static com.facebook.airlift.testing.Closeables.closeAllRuntimeException; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.expressions.LogicalRowExpressions.and; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.iterative.Lookup.noLookup; import static com.facebook.presto.sql.planner.iterative.rule.ReorderJoins.MultiJoinNode.toMultiJoinNode; import static com.facebook.presto.sql.planner.plan.JoinNode.Type.FULL; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestLambdaCaptureDesugaringRewriter.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestLambdaCaptureDesugaringRewriter.java index ffabe4a2c8e1d..5b40dccdaa913 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestLambdaCaptureDesugaringRewriter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestLambdaCaptureDesugaringRewriter.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.LambdaCaptureDesugaringRewriter.rewrite; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static java.util.stream.Collectors.toList; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMergeAdjacentWindows.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMergeAdjacentWindows.java index 862bd03d25b05..e7e4afdca63b9 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMergeAdjacentWindows.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMergeAdjacentWindows.java @@ -29,9 +29,9 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.specification; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMultipleDistinctAggregationToMarkDistinct.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMultipleDistinctAggregationToMarkDistinct.java index f97868f909d71..d17b13a8bf9a9 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMultipleDistinctAggregationToMarkDistinct.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestMultipleDistinctAggregationToMarkDistinct.java @@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; public class TestMultipleDistinctAggregationToMarkDistinct diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java index 2b8aedf2260c9..b5cf68d720b66 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; @@ -34,9 +34,9 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.constrainedTableScanWithTableLayout; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.filter; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneAggregationSourceColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneAggregationSourceColumns.java index c9b44311b92d9..6d8efbde77888 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneAggregationSourceColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneAggregationSourceColumns.java @@ -25,8 +25,8 @@ import java.util.Optional; import java.util.function.Predicate; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneCountAggregationOverScalar.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneCountAggregationOverScalar.java index 73f993a42bef5..3b301c9b91dab 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneCountAggregationOverScalar.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneCountAggregationOverScalar.java @@ -30,9 +30,9 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.plan.AggregationNode.singleGroupingSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java index 0525523dad39e..d6e8986a9131c 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java @@ -34,9 +34,9 @@ import java.util.Optional; import java.util.function.Predicate; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.spi.predicate.NullableValue.asNull; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.constrainedIndexSource; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.strictProject; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneOrderByInAggregation.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneOrderByInAggregation.java index f78b4e1845266..e490c99990a4e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneOrderByInAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneOrderByInAggregation.java @@ -27,8 +27,8 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.singleGroupingSet; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneTableScanColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneTableScanColumns.java index d330bcefc181c..fc958025ad66b 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneTableScanColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneTableScanColumns.java @@ -29,8 +29,8 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.strictProject; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.strictTableScan; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneValuesColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneValuesColumns.java index 1f0bb2c1b39c2..ce750da56a498 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneValuesColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneValuesColumns.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.project; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneWindowColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneWindowColumns.java index 396470cf36c7e..cd4e4e8a20f0e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneWindowColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneWindowColumns.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; @@ -38,8 +38,8 @@ import java.util.Set; import java.util.function.Predicate; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushAggregationThroughOuterJoin.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushAggregationThroughOuterJoin.java index 8778475796ed3..12cfd2ef158c9 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushAggregationThroughOuterJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushAggregationThroughOuterJoin.java @@ -23,9 +23,9 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.equiJoinClause; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushPartialAggregationThroughJoin.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushPartialAggregationThroughJoin.java index 185ce9709019a..716f9115e8853 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushPartialAggregationThroughJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushPartialAggregationThroughJoin.java @@ -23,8 +23,8 @@ import java.util.Optional; import static com.facebook.presto.SystemSessionProperties.PUSH_PARTIAL_AGGREGATION_THROUGH_JOIN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.equiJoinClause; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java index 121777e004537..93123bc2b519c 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushProjectionThroughExchange.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; @@ -23,7 +23,7 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.MULTIPLY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.exchange; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.project; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushTableWriteThroughUnion.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushTableWriteThroughUnion.java index b07f7117bb344..2a8ed307137d4 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushTableWriteThroughUnion.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPushTableWriteThroughUnion.java @@ -20,7 +20,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.tableWriter; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.union; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveEmptyDelete.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveEmptyDelete.java index cbf768eb138e4..33a6a7e09bcd8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveEmptyDelete.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveEmptyDelete.java @@ -25,7 +25,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.test.RuleTester.CONNECTOR_ID; public class TestRemoveEmptyDelete diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveFullSample.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveFullSample.java index cc7971810981f..f52f803fc77ac 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveFullSample.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveFullSample.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.filter; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveTrivialFilters.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveTrivialFilters.java index 627594230652d..fe56d3a6e4165 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveTrivialFilters.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveTrivialFilters.java @@ -17,7 +17,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveUnreferencedScalarLateralNodes.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveUnreferencedScalarLateralNodes.java index 9423866219365..cd87bf085903f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveUnreferencedScalarLateralNodes.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestRemoveUnreferencedScalarLateralNodes.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.iterative.rule; -import com.facebook.presto.spi.type.BigintType; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java index 684cb26afaf39..3454f4c69dfa0 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestReorderJoins.java @@ -42,9 +42,9 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; import static com.facebook.presto.common.function.OperatorType.EQUAL; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.AUTOMATIC; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.BROADCAST; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.equiJoinClause; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSimplifyExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSimplifyExpressions.java index 3b8a0551857b8..f3f6163b5f668 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSimplifyExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSimplifyExpressions.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.LiteralEncoder; @@ -40,8 +40,8 @@ import java.util.stream.Stream; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.ExpressionUtils.binaryExpression; import static com.facebook.presto.sql.ExpressionUtils.extractPredicates; import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSingleDistinctAggregationToGroupBy.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSingleDistinctAggregationToGroupBy.java index 4e5496aef422c..53afb99fd3425 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSingleDistinctAggregationToGroupBy.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSingleDistinctAggregationToGroupBy.java @@ -22,9 +22,9 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.globalAggregation; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSwapAdjacentWindowsBySpecifications.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSwapAdjacentWindowsBySpecifications.java index c43a78e2a360b..f5e38dec594a7 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSwapAdjacentWindowsBySpecifications.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestSwapAdjacentWindowsBySpecifications.java @@ -29,9 +29,9 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.specification; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarAggregationToJoin.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarAggregationToJoin.java index 150b48adbc760..e1b19b4918991 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarAggregationToJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarAggregationToJoin.java @@ -20,7 +20,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.assignUniqueId; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarSubquery.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarSubquery.java index f23150114bfa9..d143171140fe3 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarSubquery.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedScalarSubquery.java @@ -14,9 +14,9 @@ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; import com.facebook.presto.sql.tree.Cast; @@ -35,7 +35,7 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.assignUniqueId; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.filter; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedSingleRowSubqueryToProject.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedSingleRowSubqueryToProject.java index 4b09c91cd2a34..cfe635f90aad8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedSingleRowSubqueryToProject.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformCorrelatedSingleRowSubqueryToProject.java @@ -26,7 +26,7 @@ import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.project; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.tableScan; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformExistsApplyToLateralJoin.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformExistsApplyToLateralJoin.java index 259536dc5d779..b0cb16f6e0964 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformExistsApplyToLateralJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTransformExistsApplyToLateralJoin.java @@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.functionCall; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.lateral; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java index dd876bb564754..c5fda86d93e3a 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestTranslateExpressions.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.FunctionType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.FunctionType; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; import com.facebook.presto.sql.relational.FunctionResolution; @@ -32,9 +32,9 @@ import java.util.Optional; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static com.facebook.presto.sql.relational.Expressions.call; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java index 2d05f001171b6..38b79cffd167e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java @@ -14,7 +14,9 @@ package com.facebook.presto.sql.planner.iterative.rule.test; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.IndexHandle; import com.facebook.presto.metadata.Metadata; @@ -22,7 +24,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Aggregation; @@ -46,7 +47,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.analyzer.TypeSignatureProvider; import com.facebook.presto.sql.parser.ParsingOptions; @@ -97,10 +97,10 @@ import java.util.function.Consumer; import java.util.stream.Stream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.metadata.FunctionManager.qualifyFunctionName; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.sql.planner.PlannerUtils.toOrderingScheme; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/TestRuleTester.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/TestRuleTester.java index d478c64fcb36a..2db2953791e7c 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/TestRuleTester.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/TestRuleTester.java @@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.constantExpressions; import static com.facebook.presto.sql.relational.Expressions.variable; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestAddExchanges.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestAddExchanges.java index 2645a28528332..ce9e186cc0de8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestAddExchanges.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestAddExchanges.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.optimizations; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.ConstantProperty; import com.facebook.presto.spi.GroupingProperty; import com.facebook.presto.spi.SortingProperty; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.optimizations.ActualProperties.Global; import com.google.common.collect.ImmutableList; @@ -31,8 +31,8 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_HASH_DISTRIBUTION; import static com.facebook.presto.sql.planner.optimizations.ActualProperties.Global.arbitraryPartition; import static com.facebook.presto.sql.planner.optimizations.ActualProperties.Global.partitionedOn; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java index 0865e73195c73..6837d33156d06 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java @@ -60,10 +60,10 @@ import java.util.Set; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.or; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.node; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestEliminateSorts.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestEliminateSorts.java index 36fbf2e8f3d31..91e53c98c2f65 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestEliminateSorts.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestEliminateSorts.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.optimizations; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.RuleStatsRecorder; import com.facebook.presto.sql.planner.assertions.BasePlanTest; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestExpressionEquivalence.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestExpressionEquivalence.java index b216f8c714acb..d5cc1878fde2f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestExpressionEquivalence.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestExpressionEquivalence.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.sql.planner.optimizations; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.Symbol; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestLocalProperties.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestLocalProperties.java index 7d82a9094dabb..4a8825e78c5a0 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestLocalProperties.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestLocalProperties.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConstantProperty; import com.facebook.presto.spi.GroupingProperty; import com.facebook.presto.spi.LocalProperty; import com.facebook.presto.spi.SortingProperty; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.testing.TestingMetadata.TestingColumnHandle; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.type.TypeReference; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestMergeWindows.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestMergeWindows.java index 6bf931b8071a3..de86607118ab1 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestMergeWindows.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestMergeWindows.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.optimizations; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.sql.planner.RuleStatsRecorder; import com.facebook.presto.sql.planner.assertions.BasePlanTest; import com.facebook.presto.sql.planner.assertions.ExpectedValueProvider; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestReorderWindows.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestReorderWindows.java index f2c7c49d209ad..b6155de183682 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestReorderWindows.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestReorderWindows.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.sql.planner.optimizations; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.sql.planner.RuleStatsRecorder; import com.facebook.presto.sql.planner.assertions.BasePlanTest; import com.facebook.presto.sql.planner.assertions.ExpectedValueProvider; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestAssignments.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestAssignments.java index ce90da24f7d69..f0fcdec5221dd 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestAssignments.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestAssignments.java @@ -19,7 +19,7 @@ import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.assignment; import static com.facebook.presto.sql.tree.BooleanLiteral.TRUE_LITERAL; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestStatisticsWriterNode.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestStatisticsWriterNode.java index d61c235fd763f..cf6d6f0d977f5 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestStatisticsWriterNode.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestStatisticsWriterNode.java @@ -16,6 +16,8 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.HandleJsonModule; import com.facebook.presto.metadata.HandleResolver; import com.facebook.presto.spi.ConnectorId; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.statistics.ColumnStatisticMetadata; import com.facebook.presto.spi.statistics.ColumnStatisticType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.testing.TestingHandleResolver; @@ -45,8 +45,8 @@ import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.inject.multibindings.Multibinder.newSetBinder; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestWindowNode.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestWindowNode.java index 4e93e30d1c3b8..b306c69ad2a00 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestWindowNode.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/plan/TestWindowNode.java @@ -16,10 +16,12 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.HandleJsonModule; import com.facebook.presto.server.SliceDeserializer; import com.facebook.presto.server.SliceSerializer; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; @@ -27,8 +29,6 @@ import com.facebook.presto.spi.plan.ValuesNode; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.Serialization; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.SqlParser; @@ -55,8 +55,8 @@ import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_FOLLOWING; import static com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType.UNBOUNDED_PRECEDING; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java index 28c72762251fa..618045abd7e10 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java @@ -38,10 +38,10 @@ import java.util.Optional; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.Step.FINAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; import static com.facebook.presto.spi.plan.AggregationNode.groupingSets; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Scope.LOCAL; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Scope.REMOTE_STREAMING; import static com.facebook.presto.sql.planner.plan.ExchangeNode.Type.REPARTITION; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java index 88329b22a6698..327bb2969d60e 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java @@ -37,8 +37,8 @@ import java.util.function.Function; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; public class TestValidateStreamingAggregations extends BasePlanTest diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java index 47bfa9e2e953f..a65de89443682 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyNoOriginalExpression.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.sql.planner.sanity; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BooleanType; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TestingWriterTarget; import com.facebook.presto.sql.planner.assertions.BasePlanTest; @@ -55,7 +55,7 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.OriginalExpressionUtils.castToRowExpression; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyOnlyOneOutputNode.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyOnlyOneOutputNode.java index 2eccdb8146fb8..4f7235d4d9b01 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyOnlyOneOutputNode.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestVerifyOnlyOneOutputNode.java @@ -25,7 +25,7 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestVerifyOnlyOneOutputNode { diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java index 6c49a1f864484..1253944aaf377 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestDeterminismEvaluator.java @@ -21,9 +21,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.LESS_THAN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.field; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java index 8cf05dd30d961..91a536fab91cc 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestFunctionResolution.java @@ -14,10 +14,10 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.StandardFunctionResolution; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import org.testng.annotations.BeforeClass; @@ -25,8 +25,8 @@ import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.GREATER_THAN; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java index a3ef6f91c2329..21b3bc85268b7 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestLogicalRowExpressions.java @@ -15,13 +15,13 @@ import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -37,15 +37,15 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.extractPredicates; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.AND; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.OR; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java index a06af7d883c63..56f8332be1e43 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionOptimizer.java @@ -14,17 +14,17 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.block.IntArrayBlock; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -36,18 +36,18 @@ import static com.facebook.presto.block.BlockAssertions.toValues; import static com.facebook.presto.common.function.OperatorType.ADD; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.CastType.CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ARRAY_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_MAP_CAST; import static com.facebook.presto.metadata.CastType.JSON_TO_ROW_CAST; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IF; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.call; import static com.facebook.presto.sql.relational.Expressions.constant; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java index 88e65d0390ebe..5af3710adc68c 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestRowExpressionTranslator.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.expressions.translator.FunctionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTranslator; import com.facebook.presto.expressions.translator.RowExpressionTreeTranslator; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; import com.facebook.presto.sql.TestingRowExpressionTranslator; import com.facebook.presto.sql.planner.TypeProvider; import com.google.common.collect.ImmutableMap; @@ -43,12 +43,12 @@ import java.util.Optional; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.expressions.translator.FunctionTranslator.buildFunctionTranslator; import static com.facebook.presto.expressions.translator.RowExpressionTreeTranslator.translateWith; import static com.facebook.presto.expressions.translator.TranslatedExpression.untranslated; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java index 11db61efdba8a..8b4e188bc742b 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/relational/TestSubExpressions.java @@ -14,20 +14,20 @@ package com.facebook.presto.sql.relational; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.FunctionType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; -import com.facebook.presto.spi.type.FunctionType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import org.testng.annotations.Test; import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; import static com.facebook.presto.common.function.OperatorType.ADD; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.BIND; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.relational.Expressions.constant; import static com.facebook.presto.sql.relational.Expressions.specialForm; diff --git a/presto-main/src/test/java/com/facebook/presto/type/AbstractTestType.java b/presto-main/src/test/java/com/facebook/presto/type/AbstractTestType.java index a3de76b430ac9..fac49deca3081 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/AbstractTestType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/AbstractTestType.java @@ -14,13 +14,13 @@ package com.facebook.presto.type; import com.facebook.presto.block.BlockEncodingManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; @@ -35,12 +35,12 @@ import java.util.TreeMap; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; +import static com.facebook.presto.common.block.BlockSerdeUtil.writeBlock; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; import static com.facebook.presto.operator.OperatorAssertion.toRow; -import static com.facebook.presto.spi.block.BlockSerdeUtil.writeBlock; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_LAST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.type.TypeUtils.hashPosition; import static com.facebook.presto.type.TypeUtils.positionEqualsPosition; diff --git a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java index 462efcdc7e70d..958eaaf8610bb 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkBigIntOperators.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java index 48b41048ed625..925d04b4992e5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java @@ -14,6 +14,11 @@ package com.facebook.presto.type; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; @@ -21,11 +26,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.facebook.presto.sql.parser.SqlParser; @@ -62,13 +62,13 @@ import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.operator.scalar.FunctionAssertions.createExpression; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java index b92915b5559c5..1356116132590 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestArrayOperators.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.ErrorCode; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.facebook.presto.sql.analyzer.SemanticException; import com.google.common.base.Strings; @@ -49,27 +49,27 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.BlockSerdeUtil.writeBlock; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.aggregation.TypedSet.MAX_FUNCTION_MEMORY; import static com.facebook.presto.spi.StandardErrorCode.EXCEEDED_FUNCTION_MEMORY_LIMIT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.BlockSerdeUtil.writeBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.AMBIGUOUS_FUNCTION_CALL; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.FUNCTION_NOT_FOUND; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.TYPE_MISMATCH; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBigintArrayType.java b/presto-main/src/test/java/com/facebook/presto/type/TestBigintArrayType.java index af8771e4fd0c8..a6845cb576feb 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBigintArrayType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBigintArrayType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; public class TestBigintArrayType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java index 10686a070328e..bcb48459664d2 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBigintOperators.java @@ -17,11 +17,11 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.lang.String.format; public class TestBigintOperators diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBigintType.java b/presto-main/src/test/java/com/facebook/presto/type/TestBigintType.java index a6f8e7889bc03..4aa76b81ec155 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBigintType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBigintType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestBigintType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBigintVarcharMapType.java b/presto-main/src/test/java/com/facebook/presto/type/TestBigintVarcharMapType.java index a0bf846d300ba..b123d26dc7870 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBigintVarcharMapType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBigintVarcharMapType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java index b15885936e7bf..cf266c6d4ef0d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanOperators.java @@ -17,9 +17,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class TestBooleanOperators extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanType.java b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanType.java index 4176362d8c1bf..838e23af81d9f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestBooleanType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestBooleanType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestBooleanType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java index 28af471b78790..ca51a3ac6749a 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestCharOperators.java @@ -17,7 +17,7 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; public class TestCharOperators extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestCharParametricType.java b/presto-main/src/test/java/com/facebook/presto/type/TestCharParametricType.java index 15526988ee8a3..fd04272b74939 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestCharParametricType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestCharParametricType.java @@ -16,7 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.CharType.createCharType; +import static com.facebook.presto.common.type.CharType.createCharType; public class TestCharParametricType extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestCharType.java b/presto-main/src/test/java/com/facebook/presto/type/TestCharType.java index b5907591f5a58..1e0f2b76e5fc9 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestCharType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestCharType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.CharType; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.CharType; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.CharType.createCharType; +import static com.facebook.presto.common.type.CharType.createCharType; public class TestCharType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestCharacterStringCasts.java b/presto-main/src/test/java/com/facebook/presto/type/TestCharacterStringCasts.java index f8d8677e01af2..d18b0ccdffb23 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestCharacterStringCasts.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestCharacterStringCasts.java @@ -16,10 +16,10 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.operator.scalar.CharacterStringCasts.varcharToCharSaturatedFloorCast; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestColorArrayType.java b/presto-main/src/test/java/com/facebook/presto/type/TestColorArrayType.java index 48ff5256caa62..bf12cba54bcd1 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestColorArrayType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestColorArrayType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.type.ColorType.COLOR; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestColorType.java b/presto-main/src/test/java/com/facebook/presto/type/TestColorType.java index d83de04bee346..53786e7a099cb 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestColorType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestColorType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import static com.facebook.presto.operator.scalar.ColorFunctions.rgb; import static com.facebook.presto.type.ColorType.COLOR; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestConventionDependencies.java b/presto-main/src/test/java/com/facebook/presto/type/TestConventionDependencies.java index ed17a9a50f2aa..d1ce04b8cc9ce 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestConventionDependencies.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestConventionDependencies.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.BlockIndex; import com.facebook.presto.spi.function.BlockPosition; import com.facebook.presto.spi.function.Convention; @@ -23,18 +24,17 @@ import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.lang.invoke.MethodHandle; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.BLOCK_POSITION; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.BOXED_NULLABLE; import static com.facebook.presto.spi.function.InvocationConvention.InvocationArgumentConvention.NEVER_NULL; import static com.facebook.presto.spi.function.InvocationConvention.InvocationReturnConvention.FAIL_ON_NULL; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.Throwables.throwIfInstanceOf; public class TestConventionDependencies diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java index 058611bbce875..628747bd8a219 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateBase.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; @@ -24,12 +24,12 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperators.java index a6b15fdbaa49a..f0a7a39bce269 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperators.java @@ -15,10 +15,10 @@ package com.facebook.presto.type; import com.facebook.presto.Session; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.FunctionAssertions; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; @@ -26,10 +26,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsBase.java index 40650815126dd..efe39ba5ac7cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsBase.java @@ -13,26 +13,26 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsLegacy.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsLegacy.java index 44cfa8e8d7ab5..e86a72234e242 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsLegacy.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateTimeOperatorsLegacy.java @@ -15,10 +15,10 @@ package com.facebook.presto.type; import com.facebook.presto.Session; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.FunctionAssertions; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; @@ -26,10 +26,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.base.Verify.verify; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDateType.java b/presto-main/src/test/java/com/facebook/presto/type/TestDateType.java index b88f633b0aed2..82654747d0c0f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDateType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDateType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlDate; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlDate; -import static com.facebook.presto.spi.type.DateType.DATE; +import static com.facebook.presto.common.type.DateType.DATE; public class TestDateType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalCasts.java b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalCasts.java index f96d40c9cd302..0815b631a39cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalCasts.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalCasts.java @@ -16,14 +16,14 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class TestDecimalCasts extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java index d60cbafa7672b..67b274e5dc3f8 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDecimalOperators.java @@ -17,10 +17,10 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; public class TestDecimalOperators extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java index 6262d33e6b085..32158e2ebefff 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleOperators.java @@ -17,12 +17,12 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.Double.doubleToLongBits; import static java.lang.Double.doubleToRawLongBits; import static java.lang.Double.isNaN; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleType.java b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleType.java index 16b15c84c33ba..e1aac2377f0fd 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestDoubleType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestDoubleType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.LongArrayBlockBuilder; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static java.lang.Double.doubleToLongBits; import static java.lang.Double.doubleToRawLongBits; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestFunctionType.java b/presto-main/src/test/java/com/facebook/presto/type/TestFunctionType.java index d93cd4f450ed5..e2b6ddc6abb3a 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestFunctionType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestFunctionType.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestInstanceFunction.java b/presto-main/src/test/java/com/facebook/presto/type/TestInstanceFunction.java index 5ee2a18c37763..ef9d1e594f333 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestInstanceFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestInstanceFunction.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; public class TestInstanceFunction extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerArrayType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerArrayType.java index 19d3507347dc7..b1d76e77c842a 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerArrayType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerArrayType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; public class TestIntegerArrayType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java index 778568964cd50..f749a913c1d7e 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerOperators.java @@ -17,16 +17,16 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static java.lang.String.format; public class TestIntegerOperators diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerType.java index de59450075bf8..f38a975ca784e 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.IntegerType.INTEGER; public class TestIntegerType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerVarcharMapType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerVarcharMapType.java index cc4cf9ceefae5..745d6843e54d4 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntegerVarcharMapType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntegerVarcharMapType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java index 7064588ed8021..36dddb114c1aa 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTime.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; import static java.util.concurrent.TimeUnit.DAYS; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTimeType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTimeType.java index fefab9b2b101f..4c146ca1431ea 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTimeType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalDayTimeType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java index 295bfdd0aeb6d..66c551519dd5f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonth.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.Type; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonthType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonthType.java index c6d249297194b..fdf693ff7dc38 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonthType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIntervalYearMonthType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java index c4612f9273f61..7c1d54dbfad49 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressOperators.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlVarbinary; import com.google.common.net.InetAddresses; import io.airlift.slice.Slices; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IpAddressType.IPADDRESS; import static com.google.common.io.BaseEncoding.base16; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressType.java index 59cc531b75376..889e72e5f0d73 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpAddressType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java index a96294f41c5fb..cbd9dff770e28 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixOperators.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.common.net.InetAddresses; import io.airlift.slice.Slices; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.IpAddressType.IPADDRESS; import static com.facebook.presto.type.IpPrefixType.IPPREFIX; import static java.lang.System.arraycopy; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixType.java b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixType.java index f85217ee77c28..50b5eb672708a 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestIpPrefixType.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java index db9515d3256c8..c325ce345f4a4 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestJsonOperators.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; @@ -28,17 +28,17 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; import static java.lang.Double.NEGATIVE_INFINITY; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestJsonType.java b/presto-main/src/test/java/com/facebook/presto/type/TestJsonType.java index 90b1626e1affe..647221e9ac745 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestJsonType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestJsonType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.JsonType.JSON; +import static com.facebook.presto.common.type.JsonType.JSON; public class TestJsonType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestLegacyMapSubscript.java b/presto-main/src/test/java/com/facebook/presto/type/TestLegacyMapSubscript.java index e98f6ef6b514e..df910f305157b 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestLegacyMapSubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestLegacyMapSubscript.java @@ -17,7 +17,7 @@ import com.facebook.presto.sql.analyzer.FeaturesConfig; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestLegacyMapSubscript extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestLongDecimalType.java b/presto-main/src/test/java/com/facebook/presto/type/TestLongDecimalType.java index eb4f630ef5a32..f7de5fc6df44f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestLongDecimalType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestLongDecimalType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.testng.annotations.Test; @@ -24,10 +24,10 @@ import java.math.BigDecimal; import java.math.BigInteger; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.writeBigDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.writeBigDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; import static org.testng.Assert.assertEquals; public class TestLongDecimalType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java index ebac8a5e20a06..61e0de542197c 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestMapOperators.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; @@ -39,19 +39,19 @@ import static com.facebook.presto.SessionTestUtils.TEST_SESSION; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.util.StructuralTestUtil.appendToBlockBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java index eeab2ad93917b..353245350fa00 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRealOperators.java @@ -17,14 +17,14 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.lang.Float.floatToIntBits; import static java.lang.Float.intBitsToFloat; import static java.lang.Float.isNaN; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRealType.java b/presto-main/src/test/java/com/facebook/presto/type/TestRealType.java index 10c1a87e791f2..c81577292596b 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRealType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRealType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.IntArrayBlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.IntArrayBlockBuilder; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToIntBits; import static java.lang.Float.floatToRawIntBits; import static java.lang.Float.intBitsToFloat; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java index b500183ac7e7d..ec148eefd82df 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRowOperators.java @@ -14,17 +14,17 @@ package com.facebook.presto.type; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.operator.scalar.FunctionAssertions; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.google.common.collect.ImmutableList; @@ -45,19 +45,19 @@ import static com.facebook.presto.SystemSessionProperties.LEGACY_ROW_FIELD_ORDINAL_ACCESS; import static com.facebook.presto.common.function.OperatorType.HASH_CODE; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.MISSING_ATTRIBUTE; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.util.StructuralTestUtil.appendToBlockBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestRowParametricType.java b/presto-main/src/test/java/com/facebook/presto/type/TestRowParametricType.java index eba0a57f53bcb..3bcd175207f47 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestRowParametricType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestRowParametricType.java @@ -13,22 +13,22 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import org.testng.annotations.Test; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.ROW; import static com.facebook.presto.testing.assertions.Assert.assertEquals; public class TestRowParametricType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestShortDecimalType.java b/presto-main/src/test/java/com/facebook/presto/type/TestShortDecimalType.java index 69004b16c30af..d83f965548d14 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestShortDecimalType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestShortDecimalType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; public class TestShortDecimalType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSimpleRowType.java b/presto-main/src/test/java/com/facebook/presto/type/TestSimpleRowType.java index 71593fa79f120..984b8d83428ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSimpleRowType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSimpleRowType.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RowBlockBuilder; -import com.facebook.presto.spi.block.SingleRowBlockWriter; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RowBlockBuilder; +import com.facebook.presto.common.block.SingleRowBlockWriter; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; public class TestSimpleRowType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintArrayType.java b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintArrayType.java index 2856714bd16cf..cb87dc6ac6be4 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintArrayType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintArrayType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; public class TestSmallintArrayType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java index bf8e8f8be6821..0f83ad710f159 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintOperators.java @@ -17,15 +17,15 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.INVALID_LITERAL; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintType.java b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintType.java index 9adc5b24b6a1c..3a798dfaad405 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; public class TestSmallintType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintVarcharMapType.java b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintVarcharMapType.java index 7664632d28b10..1c76e8aa72af5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestSmallintVarcharMapType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestSmallintVarcharMapType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java index d5c8ae5e3d81c..ee274a9a98bcd 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeBase.java @@ -14,11 +14,11 @@ package com.facebook.presto.type; import com.facebook.presto.Session; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.operator.scalar.FunctionAssertions; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.facebook.presto.testing.TestingSession; import org.joda.time.DateTime; @@ -26,13 +26,13 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeType.java index 18518af2662b5..d8fb3571461b5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlTime; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlTime; -import static com.facebook.presto.spi.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeType.TIME; public class TestTimeType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZone.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZone.java index b8d061229fee3..fd4b9197124a9 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZone.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZone.java @@ -15,8 +15,8 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java index f2e4986387f90..42baf882b5d41 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneBase.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneLegacy.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneLegacy.java index bc66169c182e9..b72b199bc4f85 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneLegacy.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneLegacy.java @@ -15,8 +15,8 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneType.java index 07f8f3ae208ad..72d973694bcac 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimeWithTimeZoneType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; public class TestTimeWithTimeZoneType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestamp.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestamp.java index 8121944f7800e..7ff8e588f72a6 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestamp.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestamp.java @@ -17,7 +17,7 @@ import java.time.LocalDateTime; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; public class TestTimestamp diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java index 1a07e1806add6..6c26c11baa94f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampBase.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import com.facebook.presto.sql.analyzer.SemanticErrorCode; import com.facebook.presto.testing.TestingSession; import org.joda.time.DateTime; @@ -27,15 +27,15 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampLegacy.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampLegacy.java index cfab5201f2f56..3027edad5af09 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampLegacy.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampLegacy.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.type; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; public class TestTimestampLegacy diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampType.java index 130942151211a..94d2647d5df32 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlTimestamp; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlTimestamp; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; public class TestTimestampType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZone.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZone.java index acfa1b231d348..98872c8342931 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZone.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZone.java @@ -15,9 +15,9 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java index 494d01b5ebd95..3ae133c354e5d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneBase.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimeWithTimeZone; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimeWithTimeZone; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.TimeZoneKey; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; @@ -25,13 +25,13 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneLegacy.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneLegacy.java index 53728f21971f9..f5074a6d7428e 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneLegacy.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneLegacy.java @@ -15,8 +15,8 @@ import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimeOf; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneType.java index c2926730ce0b7..632d16c0b30e5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTimestampWithTimeZoneType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeyForOffset; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeyForOffset; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; public class TestTimestampWithTimeZoneType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintArrayType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintArrayType.java index 2fd5c9df4b72e..6c8ec44e4064f 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintArrayType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintArrayType.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import java.util.List; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.StructuralTestUtil.arrayBlockOf; public class TestTinyintArrayType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java index b46659f439444..d0740f7d0a353 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintOperators.java @@ -17,15 +17,15 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.DIVISION_BY_ZERO; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.INVALID_LITERAL; import static java.lang.String.format; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintType.java index d774542cac27c..ba3ac31ba90bd 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintType.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; public class TestTinyintType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintVarcharMapType.java b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintVarcharMapType.java index 4cf624b9ef31c..8a839f1c61e3c 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTinyintVarcharMapType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTinyintVarcharMapType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import java.util.Map; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.util.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.util.StructuralTestUtil.mapType; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java b/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java index 140fe33325de7..919b9e15568fa 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestTypeRegistry.java @@ -14,11 +14,11 @@ package com.facebook.presto.type; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.OperatorNotFoundException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.google.common.collect.ImmutableSet; import org.testng.annotations.Test; @@ -34,25 +34,25 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.CastType.CAST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.type.JoniRegexpType.JONI_REGEXP; import static com.facebook.presto.type.JsonPathType.JSON_PATH; diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java index 0afdb638ab53f..5d5e4652c9fe5 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestUnknownOperators.java @@ -21,10 +21,10 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.type.UnknownType.UNKNOWN; public class TestUnknownOperators diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestVarbinaryType.java b/presto-main/src/test/java/com/facebook/presto/type/TestVarbinaryType.java index fc31749490156..e6f8128b76b36 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestVarbinaryType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestVarbinaryType.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.SqlVarbinary; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; public class TestVarbinaryType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java index 93157f545d599..c270d47510ba2 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharOperators.java @@ -17,9 +17,9 @@ import org.testng.annotations.Test; import static com.facebook.presto.common.function.OperatorType.INDETERMINATE; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; public class TestVarcharOperators extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharType.java b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharType.java index c448c2579ad77..9a102d9786458 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/TestVarcharType.java +++ b/presto-main/src/test/java/com/facebook/presto/type/TestVarcharType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class TestVarcharType extends AbstractTestType diff --git a/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogAggregationFunction.java index 458a003e2e7d9..3108142dfe36c 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogAggregationFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.type.khyperloglog; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.AggregationFunction; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import io.airlift.slice.XxHash64; @@ -33,10 +33,10 @@ import static com.facebook.presto.block.BlockAssertions.createDoublesBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createSlicesBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.operator.aggregation.AggregationTestUtils.assertAggregation; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; public class TestKHyperLogLogAggregationFunction diff --git a/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogFunctions.java b/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogFunctions.java index 697caeaacbd51..cbbe901dc959d 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/type/khyperloglog/TestKHyperLogLogFunctions.java @@ -24,9 +24,9 @@ import java.util.List; import java.util.Random; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; public class TestKHyperLogLogFunctions extends AbstractTestFunctions diff --git a/presto-main/src/test/java/com/facebook/presto/util/InfiniteRecordSet.java b/presto-main/src/test/java/com/facebook/presto/util/InfiniteRecordSet.java index ff91390fe7598..9fc697cef422a 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/InfiniteRecordSet.java +++ b/presto-main/src/test/java/com/facebook/presto/util/InfiniteRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java b/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java index 7df17ed7da8aa..a4b072543c860 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.collect.ImmutableList; import com.google.common.collect.Streams; @@ -46,9 +46,9 @@ import java.util.stream.Collectors; import static com.facebook.presto.SequencePageBuilder.createSequencePage; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.util.MergeSortedPages.mergeSortedPages; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Collections.nCopies; diff --git a/presto-main/src/test/java/com/facebook/presto/util/StructuralTestUtil.java b/presto-main/src/test/java/com/facebook/presto/util/StructuralTestUtil.java index 235a95a34497e..de6e5174cb723 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/StructuralTestUtil.java +++ b/presto-main/src/test/java/com/facebook/presto/util/StructuralTestUtil.java @@ -14,16 +14,16 @@ package com.facebook.presto.util; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -32,7 +32,7 @@ import java.util.Map; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.floatToRawIntBits; public final class StructuralTestUtil diff --git a/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java b/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java index 7775479bc7128..0c9a1aef91a4a 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java +++ b/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.PageWithPositionComparator; import com.facebook.presto.operator.SimplePageWithPositionComparator; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -29,15 +29,15 @@ import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.DESC_NULLS_LAST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.operator.OperatorAssertion.toMaterializedResult; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_FIRST; -import static com.facebook.presto.spi.block.SortOrder.DESC_NULLS_LAST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/util/TestTimeZoneUtils.java b/presto-main/src/test/java/com/facebook/presto/util/TestTimeZoneUtils.java index 3d95f47be7256..a757cd79620f8 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/TestTimeZoneUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/util/TestTimeZoneUtils.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.util; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import io.airlift.jodabridge.JdkBasedZoneInfoProvider; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; @@ -23,8 +23,8 @@ import java.time.ZoneId; import java.util.TreeSet; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimeZoneKey.isUtcZoneId; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimeZoneKey.isUtcZoneId; import static com.facebook.presto.util.DateTimeZoneIndex.getDateTimeZone; import static com.facebook.presto.util.DateTimeZoneIndex.packDateTimeWithZone; import static com.facebook.presto.util.DateTimeZoneIndex.unpackDateTimeZone; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryColumnHandle.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryColumnHandle.java index e127623ccbd1b..14047da452431 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryColumnHandle.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryModule.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryModule.java index 01303f2a0de78..12f6c7f386f61 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryModule.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryModule.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Scopes; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java index 76c4fbc4f5f9f..fd361eed46a3c 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import javax.annotation.concurrent.GuardedBy; diff --git a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryMetadata.java b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryMetadata.java index 6c2b61a7b1904..23b2e7caa36a4 100644 --- a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryMetadata.java +++ b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryMetadata.java @@ -38,9 +38,9 @@ import java.util.Optional; import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.ALREADY_EXISTS; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotEquals; diff --git a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java index b539563f4a1cf..cb809d57b5ded 100644 --- a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java +++ b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.ConnectorPageSink; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -29,7 +29,7 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static java.lang.String.format; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsAggregation.java index 1005e9f2f01cf..2b3f6cdcf74ba 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsAggregation.java @@ -13,7 +13,8 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -29,7 +29,7 @@ import java.util.Map; import java.util.Set; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.collect.Sets.union; import static io.airlift.slice.SizeOf.SIZE_OF_INT; import static java.lang.String.format; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsStateSerializer.java b/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsStateSerializer.java index 9da2b1b4b785a..c1b28e0afb67a 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsStateSerializer.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/EvaluateClassifierPredictionsStateSerializer.java @@ -14,10 +14,10 @@ package com.facebook.presto.ml; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -30,7 +30,7 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; public class EvaluateClassifierPredictionsStateSerializer implements AccumulatorStateSerializer diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnClassifierAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnClassifierAggregation.java index b793d1e014feb..65aedff70e0cb 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnClassifierAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnClassifierAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -23,8 +23,8 @@ import com.facebook.presto.spi.function.SqlType; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; @AggregationFunction(value = "learn_classifier", decomposable = false) public final class LearnClassifierAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmClassifierAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmClassifierAggregation.java index bacbaca404dae..60d7c4a4aa4c6 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmClassifierAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmClassifierAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.ml.type.ClassifierType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -25,9 +25,9 @@ import com.facebook.presto.spi.function.SqlType; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; @AggregationFunction(value = "learn_libsvm_classifier", decomposable = false) public final class LearnLibSvmClassifierAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmRegressorAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmRegressorAggregation.java index b045f35505923..afe370934870e 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmRegressorAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmRegressorAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.ml.type.RegressorType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -24,9 +24,9 @@ import com.facebook.presto.spi.function.SqlType; import io.airlift.slice.Slice; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; @AggregationFunction(value = "learn_libsvm_regressor", decomposable = false) public final class LearnLibSvmRegressorAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmVarcharClassifierAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmVarcharClassifierAggregation.java index 0429ed8206a99..a49a2ceffcdc5 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmVarcharClassifierAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnLibSvmVarcharClassifierAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -23,8 +23,8 @@ import com.facebook.presto.spi.function.SqlType; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.ml.type.ClassifierType.VARCHAR_CLASSIFIER; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; @AggregationFunction(value = "learn_libsvm_classifier", decomposable = false) public final class LearnLibSvmVarcharClassifierAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnRegressorAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnRegressorAggregation.java index 91794d13ce710..e92df9517f8ae 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnRegressorAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnRegressorAggregation.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.ml.type.RegressorType; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -24,8 +24,8 @@ import com.facebook.presto.spi.function.SqlType; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; @AggregationFunction(value = "learn_regressor", decomposable = false) public final class LearnRegressorAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java index 16b44db17ddf0..d780c058ba71e 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.AccumulatorStateSerializer; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; public class LearnStateSerializer implements AccumulatorStateSerializer diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/LearnVarcharClassifierAggregation.java b/presto-ml/src/main/java/com/facebook/presto/ml/LearnVarcharClassifierAggregation.java index 1326c8febd7ba..1d7e8689b01e4 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/LearnVarcharClassifierAggregation.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/LearnVarcharClassifierAggregation.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; @@ -24,7 +24,7 @@ import io.airlift.slice.Slice; import io.airlift.slice.Slices; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; @AggregationFunction(value = "learn_classifier", decomposable = false) public final class LearnVarcharClassifierAggregation diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java b/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java index 1dcdb9bf94b9a..f89c05ec6f93a 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/MLFunctions.java b/presto-ml/src/main/java/com/facebook/presto/ml/MLFunctions.java index e14f6dad3ba5a..332ed52e83109 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/MLFunctions.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/MLFunctions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.ml.type.RegressorType; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.hash.HashCode; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/MLPlugin.java b/presto-ml/src/main/java/com/facebook/presto/ml/MLPlugin.java index 1577228eeeefc..d2d07d91d1605 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/MLPlugin.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/MLPlugin.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.ml.type.ClassifierParametricType; import com.facebook.presto.spi.Plugin; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/ModelUtils.java b/presto-ml/src/main/java/com/facebook/presto/ml/ModelUtils.java index e127273cc0f35..b703b9ebd1431 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/ModelUtils.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/ModelUtils.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.ml; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; @@ -30,8 +30,8 @@ import java.util.List; import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.SizeOf.SIZE_OF_INT; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierParametricType.java b/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierParametricType.java index b50f61ab0f780..09e507402234e 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierParametricType.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierParametricType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.ml.type; -import com.facebook.presto.spi.type.ParameterKind; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeParameter; +import com.facebook.presto.common.type.ParameterKind; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeParameter; import java.util.List; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierType.java b/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierType.java index dcdbea9954cd0..8d2e31017318d 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierType.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/type/ClassifierType.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.ml.type; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; // Layout is :, where diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/type/ModelType.java b/presto-ml/src/main/java/com/facebook/presto/ml/type/ModelType.java index 2fa15b1ffe260..8630451c19a87 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/type/ModelType.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/type/ModelType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.ml.type; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.TypeSignature; import io.airlift.slice.Slice; import static java.lang.String.format; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/type/RegressorType.java b/presto-ml/src/main/java/com/facebook/presto/ml/type/RegressorType.java index a5e55b6f8ce9f..4c380a3f005f7 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/type/RegressorType.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/type/RegressorType.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.ml.type; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; // Layout is :, where // size: is an int describing the length of the model bytes diff --git a/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java b/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java index cb59c7300ae4c..ddcf1b4f10d62 100644 --- a/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java +++ b/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java @@ -14,13 +14,13 @@ package com.facebook.presto.ml; import com.facebook.presto.RowPageBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -28,9 +28,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static org.testng.Assert.assertEquals; diff --git a/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java b/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java index f5d24acf8b1a5..e69f0aab17c9c 100644 --- a/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java +++ b/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java @@ -15,6 +15,13 @@ import com.facebook.presto.RowPageBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.ml.type.ClassifierParametricType; @@ -25,13 +32,6 @@ import com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -41,9 +41,9 @@ import java.util.Optional; import java.util.Random; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.testing.AggregationTestUtils.generateInternalAggregationFunction; import static com.facebook.presto.tests.StructuralTestUtil.mapBlockOf; import static org.testng.Assert.assertNotNull; diff --git a/presto-ml/src/test/java/com/facebook/presto/ml/TestMLQueries.java b/presto-ml/src/test/java/com/facebook/presto/ml/TestMLQueries.java index 6fa261f686a83..d7a39ca20c6da 100644 --- a/presto-ml/src/test/java/com/facebook/presto/ml/TestMLQueries.java +++ b/presto-ml/src/test/java/com/facebook/presto/ml/TestMLQueries.java @@ -14,8 +14,8 @@ package com.facebook.presto.ml; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.tests.AbstractTestQueryFramework; import com.facebook.presto.tpch.TpchConnectorFactory; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoClientModule.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoClientModule.java index 5285f3eb355b3..0043ffe230e16 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoClientModule.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoClientModule.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.mongodb; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Provides; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoColumnHandle.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoColumnHandle.java index b5891ab7a9137..b7ac4b321cf08 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoColumnHandle.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import org.bson.Document; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoConnectorFactory.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoConnectorFactory.java index 3825e5129b42b..0060e8f2a1731 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoConnectorFactory.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoConnectorFactory.java @@ -15,11 +15,11 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import java.util.Map; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoIndex.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoIndex.java index dd12d72b99c36..6745889b3037d 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoIndex.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoIndex.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.mongodb; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.google.common.collect.ImmutableList; import com.mongodb.client.ListIndexesIterable; import org.bson.Document; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java index 2dc61fc23ff6f..be183e40bdf31 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java @@ -13,29 +13,29 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TimestampWithTimeZoneType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TimestampWithTimeZoneType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarbinaryType; import com.google.common.collect.ImmutableList; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.InsertManyOptions; @@ -56,13 +56,13 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.mongodb.ObjectIdType.OBJECT_ID; import static com.facebook.presto.mongodb.TypeUtils.isArrayType; import static com.facebook.presto.mongodb.TypeUtils.isMapType; import static com.facebook.presto.mongodb.TypeUtils.isRowType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static java.util.Collections.unmodifiableList; import static java.util.Collections.unmodifiableMap; import static java.util.concurrent.CompletableFuture.completedFuture; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java index 9e11375484d78..a610206fac176 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.mongodb.client.MongoCursor; import io.airlift.slice.Slice; import org.bson.Document; @@ -36,17 +36,17 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.mongodb.ObjectIdType.OBJECT_ID; import static com.facebook.presto.mongodb.TypeUtils.isArrayType; import static com.facebook.presto.mongodb.TypeUtils.isMapType; import static com.facebook.presto.mongodb.TypeUtils.isRowType; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPlugin.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPlugin.java index 709da3b32ab6b..71afd50ba2812 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPlugin.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPlugin.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Plugin; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java index 09af37298b960..7aaed2b32020c 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java @@ -14,6 +14,13 @@ package com.facebook.presto.mongodb; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaNotFoundException; @@ -22,13 +29,6 @@ import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; @@ -58,12 +58,12 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.mongodb.ObjectIdType.OBJECT_ID; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Throwables.throwIfInstanceOf; import static com.google.common.base.Verify.verify; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java index 84c3cd580c9aa..b83b9652dc295 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.ScalarOperator; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.base.CharMatcher; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdType.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdType.java index 5f53a50a9737e..7afc37de781aa 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdType.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/ObjectIdType.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.mongodb; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.function.SqlFunctionProperties; -import com.facebook.presto.spi.type.AbstractVariableWidthType; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.AbstractVariableWidthType; +import com.facebook.presto.common.type.SqlVarbinary; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; @@ -27,7 +27,7 @@ import java.io.IOException; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public class ObjectIdType extends AbstractVariableWidthType diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/TypeUtils.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/TypeUtils.java index f81d9dee55c66..08b6bdb95ee90 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/TypeUtils.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/TypeUtils.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.mongodb; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import java.util.function.Predicate; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; public final class TypeUtils { diff --git a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoPlugin.java b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoPlugin.java index ec49f59a06c69..591c2db3b9653 100644 --- a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoPlugin.java +++ b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoPlugin.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorContext; import com.google.common.collect.ImmutableMap; import de.bwaldvogel.mongo.MongoServer; diff --git a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java index 4ad1cb9988edc..59d139364adfd 100644 --- a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java +++ b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java @@ -22,13 +22,13 @@ import org.bson.Document; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.predicate.Range.equal; import static com.facebook.presto.spi.predicate.Range.greaterThan; import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; import static com.facebook.presto.spi.predicate.Range.lessThan; import static com.facebook.presto.spi.predicate.Range.range; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Arrays.asList; import static org.testng.Assert.assertEquals; diff --git a/presto-mysql/src/main/java/com/facebook/presto/plugin/mysql/MySqlClient.java b/presto-mysql/src/main/java/com/facebook/presto/plugin/mysql/MySqlClient.java index 5fd16e471c6da..5ea33441b52cd 100644 --- a/presto-mysql/src/main/java/com/facebook/presto/plugin/mysql/MySqlClient.java +++ b/presto-mysql/src/main/java/com/facebook/presto/plugin/mysql/MySqlClient.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.plugin.mysql; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.plugin.jdbc.BaseJdbcClient; import com.facebook.presto.plugin.jdbc.BaseJdbcConfig; import com.facebook.presto.plugin.jdbc.ConnectionFactory; @@ -25,8 +27,6 @@ import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableSet; import com.mysql.jdbc.Driver; import com.mysql.jdbc.Statement; @@ -42,16 +42,16 @@ import java.util.Optional; import java.util.Properties; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.plugin.jdbc.DriverConnectionFactory.basicConnectionProperties; import static com.facebook.presto.plugin.jdbc.JdbcErrorCode.JDBC_ERROR; import static com.facebook.presto.spi.StandardErrorCode.ALREADY_EXISTS; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.util.concurrent.MoreExecutors.directExecutor; import static com.mysql.jdbc.SQLError.SQL_STATE_ER_TABLE_EXISTS_ERROR; import static com.mysql.jdbc.SQLError.SQL_STATE_SYNTAX_ERROR; diff --git a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlDistributedQueries.java b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlDistributedQueries.java index 9110cacf380f9..3e80b3ca50ae9 100644 --- a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlDistributedQueries.java +++ b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlDistributedQueries.java @@ -26,8 +26,8 @@ import java.io.IOException; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.mysql.MySqlQueryRunner.createMySqlQueryRunner; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static java.util.concurrent.TimeUnit.SECONDS; diff --git a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlIntegrationSmokeTest.java b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlIntegrationSmokeTest.java index 68a3afdaca469..5aa85720dccf9 100644 --- a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlIntegrationSmokeTest.java +++ b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlIntegrationSmokeTest.java @@ -34,8 +34,8 @@ import java.sql.Statement; import java.util.Map; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.plugin.mysql.MySqlQueryRunner.createMySqlQueryRunner; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlTypeMapping.java b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlTypeMapping.java index 7520c36d4923a..b57c933b63612 100644 --- a/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlTypeMapping.java +++ b/presto-mysql/src/test/java/com/facebook/presto/plugin/mysql/TestMySqlTypeMapping.java @@ -14,8 +14,8 @@ package com.facebook.presto.plugin.mysql; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.testing.mysql.MySqlOptions; import com.facebook.presto.testing.mysql.TestingMySqlServer; import com.facebook.presto.tests.AbstractTestQueryFramework; @@ -36,10 +36,10 @@ import java.time.LocalDate; import java.time.ZoneId; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.plugin.mysql.MySqlQueryRunner.createMySqlQueryRunner; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.tests.datatype.DataType.bigintDataType; import static com.facebook.presto.tests.datatype.DataType.charDataType; import static com.facebook.presto.tests.datatype.DataType.dateDataType; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java index 9b3bcf972dda6..c49bf2946b490 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java @@ -14,6 +14,9 @@ package com.facebook.presto.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.MetadataReader; import com.facebook.presto.orc.metadata.OrcType; @@ -24,9 +27,6 @@ import com.facebook.presto.orc.reader.StreamReader; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java b/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java index d5f95e22cae2a..dfdd3c2591deb 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.Predicate; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java index 67d7909c14c69..59c75fe5e7bc7 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.metadata.MetadataReader; import com.facebook.presto.orc.metadata.OrcType; import com.facebook.presto.orc.metadata.PostScript.HiveWriterVersion; @@ -22,8 +24,6 @@ import com.facebook.presto.orc.reader.BatchStreamReader; import com.facebook.presto.orc.reader.BatchStreamReaders; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java index 0f62aca9d54a2..f1c4439aa2f4d 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcReader.java @@ -14,6 +14,8 @@ package com.facebook.presto.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.cache.OrcFileTailSource; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; @@ -23,8 +25,6 @@ import com.facebook.presto.orc.metadata.OrcFileTail; import com.facebook.presto.orc.metadata.PostScript.HiveWriterVersion; import com.facebook.presto.orc.stream.OrcInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; import org.joda.time.DateTimeZone; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java index 8c802b3b76c68..3e343c0f8a0f4 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java @@ -14,6 +14,14 @@ package com.facebook.presto.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.TupleDomainFilter.BigintMultiRange; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BigintValuesUsingBitmask; @@ -26,14 +34,6 @@ import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.orc.reader.SelectiveStreamReader; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -60,18 +60,18 @@ import java.util.function.Function; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.createStreamReader; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Predicates.not; import static com.google.common.base.Verify.verify; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java index 5acce537e675c..e82fc71d72169 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java @@ -13,6 +13,15 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; +import com.facebook.presto.common.type.AbstractLongType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.PostScript.HiveWriterVersion; import com.facebook.presto.orc.metadata.RowGroupIndex; @@ -33,15 +42,6 @@ import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; -import com.facebook.presto.spi.type.AbstractLongType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Iterables; @@ -62,6 +62,21 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; +import static com.facebook.presto.common.block.ColumnarMap.toColumnarMap; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode.BOTH; import static com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode.DETAILED; import static com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode.HASHED; @@ -69,21 +84,6 @@ import static com.facebook.presto.orc.metadata.OrcMetadataReader.maxStringTruncateToValidRange; import static com.facebook.presto.orc.metadata.OrcMetadataReader.minStringTruncateToValidRange; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; -import static com.facebook.presto.spi.block.ColumnarMap.toColumnarMap; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java index ec72d01c22ac0..cbe38ec48651f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java @@ -14,6 +14,7 @@ package com.facebook.presto.orc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationBuilder; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; import com.facebook.presto.orc.OrcWriterStats.FlushReason; @@ -33,7 +34,6 @@ import com.facebook.presto.orc.writer.ColumnWriter; import com.facebook.presto.orc.writer.SliceDictionaryColumnWriter; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilter.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilter.java index d5b87ae8b06a1..a1628ccafacd0 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilter.java @@ -20,9 +20,9 @@ import java.util.List; import java.util.Objects; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.compare; import static com.facebook.presto.orc.ByteArrayUtils.compareRanges; import static com.facebook.presto.orc.ByteArrayUtils.hash; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.compare; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Math.toIntExact; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java index 6ed199368f416..b0a30c6ddba5e 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.TupleDomainFilter.BigintMultiRange; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BigintValuesUsingBitmask; @@ -30,28 +33,25 @@ import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.SortedRangeSet; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.math.BigInteger; import java.util.List; import java.util.Objects; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.orc.TupleDomainFilter.ALWAYS_FALSE; import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Predicates.not; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java index 16b6b6ce9e742..707d3424bfa5b 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.metadata.statistics.BooleanStatistics; import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.metadata.statistics.HiveBloomFilter; @@ -21,11 +26,6 @@ import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -37,20 +37,20 @@ import java.util.Optional; import java.util.function.Function; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.Decimals.rescale; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.Decimals.rescale; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/array/Arrays.java b/presto-orc/src/main/java/com/facebook/presto/orc/array/Arrays.java index 4801ea2ab164f..d3133ba6ed914 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/array/Arrays.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/array/Arrays.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.orc.array; -import com.facebook.presto.spi.block.ArrayAllocator; +import com.facebook.presto.common.block.ArrayAllocator; import static com.facebook.presto.orc.array.Arrays.ExpansionFactor.SMALL; import static com.facebook.presto.orc.array.Arrays.ExpansionOption.INITIALIZE; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java index 1222127140cd9..0c4dcb8dd5a4f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java @@ -13,32 +13,32 @@ */ package com.facebook.presto.orc.metadata; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/BooleanStatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/BooleanStatisticsBuilder.java index 797803cae2a19..67671b32f4f92 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/BooleanStatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/BooleanStatisticsBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import java.util.List; import java.util.Optional; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/DoubleStatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/DoubleStatisticsBuilder.java index 1381e61da438b..be149cf9ec02d 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/DoubleStatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/DoubleStatisticsBuilder.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.Type; import java.util.List; import java.util.Optional; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongDecimalStatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongDecimalStatisticsBuilder.java index 85b6454119732..3f2deb03e2425 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongDecimalStatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongDecimalStatisticsBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import java.math.BigDecimal; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongValueStatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongValueStatisticsBuilder.java index 5822ac16a95d6..913c765974cd5 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongValueStatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/LongValueStatisticsBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; public interface LongValueStatisticsBuilder extends StatisticsBuilder diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/SliceColumnStatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/SliceColumnStatisticsBuilder.java index d9ecbf785baaa..89c79b802cd29 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/SliceColumnStatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/SliceColumnStatisticsBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; public interface SliceColumnStatisticsBuilder diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/StatisticsBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/StatisticsBuilder.java index 1cb29553f49ee..d3008f462e456 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/StatisticsBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/statistics/StatisticsBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc.metadata.statistics; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; public interface StatisticsBuilder { diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractDecimalSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractDecimalSelectiveStreamReader.java index d301814fe5f18..7590846f1f4c1 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractDecimalSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractDecimalSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -22,11 +27,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractLongSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractLongSelectiveStreamReader.java index 780bf3e3d88ee..21f5c4690e08b 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractLongSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/AbstractLongSelectiveStreamReader.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.orc.reader; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.ShortArrayBlock; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.ShortArrayBlock; +import com.facebook.presto.common.type.Type; import javax.annotation.Nullable; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; import static com.google.common.base.Preconditions.checkState; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReader.java index 7d6e9653f9a87..1e1a9c25edfae 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReader.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.orc.reader; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReaders.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReaders.java index 9bda4007b6c5b..468f88f8c5e4c 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReaders.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BatchStreamReaders.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTimeZone; public final class BatchStreamReaders diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanBatchStreamReader.java index f36d9fb27d09f..615fb595f4c3a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanBatchStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -33,13 +33,13 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.ReaderUtils.minNonNullValueSize; import static com.facebook.presto.orc.reader.ReaderUtils.unpackByteNulls; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Verify.verify; import static io.airlift.slice.SizeOf.sizeOf; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java index eed5eeec2c652..de953dd30303a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/BooleanSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -33,12 +33,12 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteBatchStreamReader.java index 8bd5ab4d7d260..a5bd3a3787920 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteBatchStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -21,11 +26,6 @@ import com.facebook.presto.orc.stream.ByteInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -34,12 +34,12 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.ReaderUtils.minNonNullValueSize; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Verify.verify; import static io.airlift.slice.SizeOf.sizeOf; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java index 923f23c8b6449..4868dcfa95cb6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ByteSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -21,11 +26,6 @@ import com.facebook.presto.orc.stream.ByteInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -34,13 +34,13 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.ReaderUtils.unpackByteNulls; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DecimalBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DecimalBatchStreamReader.java index 13ffc9bd90a46..f90ced56cac9a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DecimalBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DecimalBatchStreamReader.java @@ -13,6 +13,13 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -21,13 +28,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; @@ -36,12 +36,12 @@ import java.io.IOException; import java.util.List; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.metadata.Stream.StreamKind.SECONDARY; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Verify.verify; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleBatchStreamReader.java index db340abb3350d..86bdc6ac50afa 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleBatchStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.stream.DoubleInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -32,11 +32,11 @@ import java.io.IOException; import java.util.List; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java index 54a73b024feeb..3faf27011c624 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/DoubleSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -21,11 +26,6 @@ import com.facebook.presto.orc.stream.DoubleInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -34,12 +34,12 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatBatchStreamReader.java index 5b96070f5b067..04a9aa7cbdf0f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatBatchStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.stream.FloatInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -32,11 +32,11 @@ import java.io.IOException; import java.util.List; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.google.common.base.MoreObjects.toStringHelper; import static java.lang.Float.floatToRawIntBits; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatSelectiveStreamReader.java index 9965cbf3c63c9..d6f06f8eea051 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/FloatSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -21,23 +26,18 @@ import com.facebook.presto.orc.stream.FloatInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import org.openjdk.jol.info.ClassLayout; import java.io.IOException; import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.RealType.REAL; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.RealType.REAL; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListBatchStreamReader.java index bf9d1aecbf793..0a2820c70b620 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListBatchStreamReader.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; @@ -21,10 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java index 6193b2ba2a6c6..07a7d2126dd06 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java @@ -14,6 +14,12 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -25,12 +31,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; @@ -44,6 +44,7 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.block.ClosingBlockLease.newLease; import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; @@ -53,7 +54,6 @@ import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.block.ClosingBlockLease.newLease; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongBatchStreamReader.java index 4d020ea240539..dd1a4832aebc9 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongBatchStreamReader.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDecimalSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDecimalSelectiveStreamReader.java index 295f4550fe8d2..a84cdb5d87313 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDecimalSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDecimalSelectiveStreamReader.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.Int128ArrayBlock; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.Int128ArrayBlock; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import io.airlift.slice.Slice; import io.airlift.slice.UnsafeSlice; import java.io.IOException; import java.util.Optional; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.rescale; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.rescale; public class LongDecimalSelectiveStreamReader extends AbstractDecimalSelectiveStreamReader diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionaryBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionaryBatchStreamReader.java index 799626fe01c15..41c56ea2f5e11 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionaryBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionaryBatchStreamReader.java @@ -13,6 +13,13 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -21,13 +28,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionarySelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionarySelectiveStreamReader.java index cc01c7a4e532e..6b3628a59c91c 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionarySelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDictionarySelectiveStreamReader.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -22,9 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectBatchStreamReader.java index aae10c9935299..fd126e5f5b817 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectBatchStreamReader.java @@ -13,6 +13,16 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.ShortArrayBlock; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -21,16 +31,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.ShortArrayBlock; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectSelectiveStreamReader.java index 754db0c2dc4d4..e2fe71cb285a7 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongDirectSelectiveStreamReader.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -21,10 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; @@ -33,11 +33,11 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.block.ClosingBlockLease.newLease; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.block.ClosingBlockLease.newLease; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.SizeOf.sizeOf; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongSelectiveStreamReader.java index 003906cec60d9..3325ea805b80a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/LongSelectiveStreamReader.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapBatchStreamReader.java index 09bdeef740b04..63c59ecb47585 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapBatchStreamReader.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectBatchStreamReader.java index 3ef0d26126737..a5d8eba883edc 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectBatchStreamReader.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; @@ -21,9 +24,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import it.unimi.dsi.fastutil.ints.IntArrayList; import org.joda.time.DateTimeZone; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java index e45d517372a51..dfdd33b221938 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapDirectSelectiveStreamReader.java @@ -14,6 +14,12 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -27,12 +33,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatBatchStreamReader.java index 6db7a93a7b0ca..225ab50fe6edd 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatBatchStreamReader.java @@ -13,6 +13,16 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; @@ -22,16 +32,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java index f83c8bc0190d6..7d3bc8c155326 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapFlatSelectiveStreamReader.java @@ -14,6 +14,19 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -24,19 +37,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java index fa787d4c9846f..af61547861a9a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/MapSelectiveStreamReader.java @@ -14,15 +14,15 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ReaderUtils.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ReaderUtils.java index 4b5404a064579..3770a3968a548 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ReaderUtils.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ReaderUtils.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; -import com.facebook.presto.spi.type.Type; import java.util.function.Predicate; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReader.java index 6c4da035ddce3..2424bc7eb007e 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReader.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc.reader; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java index f4fbe1fadaea3..e5c3cb627a595 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SelectiveStreamReaders.java @@ -14,27 +14,27 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.OrcType.OrcTypeKind; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import org.joda.time.DateTimeZone; @@ -44,8 +44,8 @@ import java.util.Optional; import java.util.function.Predicate; +import static com.facebook.presto.common.type.Decimals.MAX_SHORT_PRECISION; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; -import static com.facebook.presto.spi.type.Decimals.MAX_SHORT_PRECISION; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ShortDecimalSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ShortDecimalSelectiveStreamReader.java index 20dab96994f8d..0627c7a236a3a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ShortDecimalSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ShortDecimalSelectiveStreamReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import java.io.IOException; import java.util.Optional; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceBatchStreamReader.java index 1a744d1392a37..39d45231e170c 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceBatchStreamReader.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.io.Closer; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; @@ -32,17 +32,17 @@ import java.io.UncheckedIOException; import java.util.List; +import static com.facebook.presto.common.type.Chars.byteCountWithoutTrailingSpace; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.VarbinaryType.isVarbinaryType; +import static com.facebook.presto.common.type.Varchars.byteCount; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DICTIONARY; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DICTIONARY_V2; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT_V2; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DWRF_DIRECT; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; -import static com.facebook.presto.spi.type.Chars.byteCountWithoutTrailingSpace; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.VarbinaryType.isVarbinaryType; -import static com.facebook.presto.spi.type.Varchars.byteCount; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionaryBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionaryBatchStreamReader.java index 3c365b3998106..5b32bf01b6755 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionaryBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionaryBatchStreamReader.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.VariableWidthBlock; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -23,9 +26,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.orc.stream.RowGroupDictionaryLengthInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionarySelectiveReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionarySelectiveReader.java index 1320f54e183eb..5bb4427240c8f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionarySelectiveReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDictionarySelectiveReader.java @@ -13,6 +13,14 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.type.Chars; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -25,14 +33,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.orc.stream.RowGroupDictionaryLengthInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; -import com.facebook.presto.spi.type.Chars; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java index b0f89a0c14e4c..c6a6ad097a64e 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.VariableWidthBlock; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -22,9 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import io.airlift.units.DataSize; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java index 716652e30448c..55e1e43c45146 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -24,12 +30,6 @@ import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.block.VariableWidthBlock; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import io.airlift.units.DataSize; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java index 1d7a7c2480ec3..67e16f3a5f3c8 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceSelectiveStreamReader.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.type.Chars; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.Varchars; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.type.Chars; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.Varchars; import com.google.common.io.Closer; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructBatchStreamReader.java index ffe0259bf8a06..ee3466987bfdf 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructBatchStreamReader.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; @@ -20,12 +26,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java index 48f51b514c1ca..18bcc0ac59f6c 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/StructSelectiveStreamReader.java @@ -14,6 +14,14 @@ package com.facebook.presto.orc.reader; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; @@ -22,14 +30,6 @@ import com.facebook.presto.orc.stream.BooleanInputStream; import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampBatchStreamReader.java index 6085a2951b177..e3f82a9ac5661 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampBatchStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; @@ -35,13 +35,13 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; import static com.facebook.presto.orc.metadata.Stream.StreamKind.SECONDARY; import static com.facebook.presto.orc.reader.ApacheHiveTimestampDecoder.decodeTimestamp; import static com.facebook.presto.orc.reader.ReaderUtils.verifyStreamType; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampSelectiveStreamReader.java index cd04100c7353a..cd127f9224a33 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/TimestampSelectiveStreamReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockLease; +import com.facebook.presto.common.block.ClosingBlockLease; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.OrcLocalMemoryContext; import com.facebook.presto.orc.StreamDescriptor; import com.facebook.presto.orc.TupleDomainFilter; @@ -21,11 +26,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockLease; -import com.facebook.presto.spi.block.ClosingBlockLease; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.openjdk.jol.info.ClassLayout; @@ -36,6 +36,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.facebook.presto.orc.metadata.Stream.StreamKind.DATA; import static com.facebook.presto.orc.metadata.Stream.StreamKind.PRESENT; @@ -43,7 +44,6 @@ import static com.facebook.presto.orc.reader.ApacheHiveTimestampDecoder.decodeTimestamp; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalInputStream.java b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalInputStream.java index a52a73030bc4d..500525690ec54 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalInputStream.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalInputStream.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.orc.stream; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.UnscaledDecimal128Arithmetic; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.checkpoint.DecimalStreamCheckpoint; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic; import io.airlift.slice.Slice; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalOutputStream.java b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalOutputStream.java index f4c9a68d95ec7..79745fa8bd1e2 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalOutputStream.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DecimalOutputStream.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.stream; +import com.facebook.presto.common.type.Decimals; import com.facebook.presto.orc.OrcOutputBuffer; import com.facebook.presto.orc.checkpoint.DecimalStreamCheckpoint; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.Stream; -import com.facebook.presto.spi.type.Decimals; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DoubleInputStream.java b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DoubleInputStream.java index e6c5f9293666d..11fbfd0df557e 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/stream/DoubleInputStream.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/stream/DoubleInputStream.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.orc.stream; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.DoubleStreamCheckpoint; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/stream/FloatInputStream.java b/presto-orc/src/main/java/com/facebook/presto/orc/stream/FloatInputStream.java index a8f7812606f65..6c1d1c800a38a 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/stream/FloatInputStream.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/stream/FloatInputStream.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.orc.stream; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.FloatStreamCheckpoint; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/BooleanColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/BooleanColumnWriter.java index 62b099886895c..33c5469b1b68f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/BooleanColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/BooleanColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.CompressedMetadataWriter; @@ -25,8 +27,6 @@ import com.facebook.presto.orc.stream.BooleanOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ByteColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ByteColumnWriter.java index 4253727345e34..b4d3d4afc9172 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ByteColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ByteColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.ByteStreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -25,8 +27,6 @@ import com.facebook.presto.orc.stream.ByteOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriter.java index 45bcb8bc2790f..ddfd0ad7efced 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.CompressedMetadataWriter; import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import java.io.IOException; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriters.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriters.java index e64c02efff872..4258c6e0d0ea8 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriters.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ColumnWriters.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.OrcType; import com.facebook.presto.orc.metadata.statistics.BinaryStatisticsBuilder; import com.facebook.presto.orc.metadata.statistics.DateStatisticsBuilder; import com.facebook.presto.orc.metadata.statistics.IntegerStatisticsBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; import org.joda.time.DateTimeZone; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DecimalColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DecimalColumnWriter.java index 4ade69612b35d..a3cd63bf40c65 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DecimalColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DecimalColumnWriter.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.DecimalStreamCheckpoint; @@ -31,10 +35,6 @@ import com.facebook.presto.orc.stream.LongOutputStreamV2; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DictionaryBuilder.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DictionaryBuilder.java index 39d6047e0a3da..7dea57e3645fd 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DictionaryBuilder.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DictionaryBuilder.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.VariableWidthBlockBuilder; import com.facebook.presto.orc.array.IntBigArray; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.VariableWidthBlockBuilder; import org.openjdk.jol.info.ClassLayout; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static it.unimi.dsi.fastutil.HashCommon.arraySize; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DoubleColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DoubleColumnWriter.java index 0c1d02cccba04..16adb40981c65 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/DoubleColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/DoubleColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.DoubleStreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -26,8 +28,6 @@ import com.facebook.presto.orc.stream.DoubleOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/FloatColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/FloatColumnWriter.java index 752b2b1a1b176..fdb3e43f90250 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/FloatColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/FloatColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.FloatStreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; @@ -26,8 +28,6 @@ import com.facebook.presto.orc.stream.FloatOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ListColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ListColumnWriter.java index 275bf8c2eec4f..1df243fd55775 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/ListColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/ListColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.LongStreamCheckpoint; @@ -26,8 +28,6 @@ import com.facebook.presto.orc.stream.LongOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; @@ -39,12 +39,12 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.block.ColumnarArray.toColumnarArray; import static com.facebook.presto.orc.OrcEncoding.DWRF; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT_V2; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; import static com.facebook.presto.orc.stream.LongOutputStream.createLengthOutputStream; -import static com.facebook.presto.spi.block.ColumnarArray.toColumnarArray; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/LongColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/LongColumnWriter.java index 3622b95b52807..58cdc76683c63 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/LongColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/LongColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.LongStreamCheckpoint; @@ -29,8 +31,6 @@ import com.facebook.presto.orc.stream.LongOutputStreamV2; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/MapColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/MapColumnWriter.java index 87d17b24519dc..cf8d75ea2b2f4 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/MapColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/MapColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarMap; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.LongStreamCheckpoint; @@ -26,8 +28,6 @@ import com.facebook.presto.orc.stream.LongOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarMap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; @@ -39,12 +39,12 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.block.ColumnarMap.toColumnarMap; import static com.facebook.presto.orc.OrcEncoding.DWRF; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT_V2; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; import static com.facebook.presto.orc.stream.LongOutputStream.createLengthOutputStream; -import static com.facebook.presto.spi.block.ColumnarMap.toColumnarMap; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDictionaryColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDictionaryColumnWriter.java index 27838c68b627c..d39e26873b099 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDictionaryColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDictionaryColumnWriter.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.DictionaryCompressionOptimizer.DictionaryColumn; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.array.IntBigArray; @@ -32,9 +35,6 @@ import com.facebook.presto.orc.stream.LongOutputStreamV2; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDirectColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDirectColumnWriter.java index bd5897f719033..bf5722645676f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDirectColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/SliceDirectColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.ByteArrayStreamCheckpoint; @@ -29,8 +31,6 @@ import com.facebook.presto.orc.stream.LongOutputStream; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/StructColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/StructColumnWriter.java index df660402cc34d..f6c3c52e48d61 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/StructColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/StructColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarRow; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.metadata.ColumnEncoding; import com.facebook.presto.orc.metadata.CompressedMetadataWriter; @@ -23,8 +25,6 @@ import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarRow; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; @@ -36,9 +36,9 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; import static com.facebook.presto.orc.metadata.ColumnEncoding.ColumnEncodingKind.DIRECT; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/writer/TimestampColumnWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/writer/TimestampColumnWriter.java index c34f8d2c1e004..89b96674e1b97 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/writer/TimestampColumnWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/writer/TimestampColumnWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcEncoding; import com.facebook.presto.orc.checkpoint.BooleanStreamCheckpoint; import com.facebook.presto.orc.checkpoint.LongStreamCheckpoint; @@ -28,8 +30,6 @@ import com.facebook.presto.orc.stream.LongOutputStreamV2; import com.facebook.presto.orc.stream.PresentOutputStream; import com.facebook.presto.orc.stream.StreamDataOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/AbstractTestOrcReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/AbstractTestOrcReader.java index 9bf8bbdbc3c92..b59154162683e 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/AbstractTestOrcReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/AbstractTestOrcReader.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.orc.StripeReader.StripeId; import com.facebook.presto.orc.StripeReader.StripeStreamId; import com.facebook.presto.orc.cache.CachingOrcFileTailSource; @@ -20,11 +25,6 @@ import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.OrcFileTail; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlVarbinary; import com.google.common.base.Strings; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; @@ -56,6 +56,18 @@ import java.util.List; import java.util.Random; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.orc.OrcTester.Format.ORC_12; @@ -63,18 +75,6 @@ import static com.facebook.presto.orc.OrcTester.createCustomOrcRecordReader; import static com.facebook.presto.orc.OrcTester.createOrcRecordWriter; import static com.facebook.presto.orc.OrcTester.createSettableStructObjectInspector; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterables.concat; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReaders.java b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReaders.java index 9dddc2470c168..b10ed43230cfd 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReaders.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReaders.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -52,14 +52,14 @@ import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.orc.OrcTester.Format.ORC_12; import static com.facebook.presto.orc.OrcTester.writeOrcColumnHive; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static com.google.common.io.Files.createTempDir; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReadersWithZstd.java b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReadersWithZstd.java index ce926d55cef21..f48a23262c4c1 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReadersWithZstd.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkBatchStreamReadersWithZstd.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -51,13 +51,13 @@ import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.orc.OrcTester.Format.DWRF; import static com.facebook.presto.orc.OrcTester.writeOrcColumnPresto; import static com.facebook.presto.orc.metadata.CompressionKind.ZSTD; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static com.google.common.io.Files.createTempDir; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java index 48f38f0a6e669..458a4c5eca4f1 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java @@ -14,6 +14,16 @@ package com.facebook.presto.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BooleanValue; import com.facebook.presto.orc.TupleDomainFilter.BytesRange; @@ -21,16 +31,6 @@ import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -65,6 +65,16 @@ import java.util.concurrent.TimeUnit; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; @@ -72,16 +82,6 @@ import static com.facebook.presto.orc.OrcTester.writeOrcColumnHive; import static com.facebook.presto.orc.TupleDomainFilter.LongDecimalRange; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.io.Files.createTempDir; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java index 192ffddcfe50e..39315edd272c5 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java @@ -17,6 +17,26 @@ import com.facebook.hive.orc.lazy.OrcLazyObject; import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.TrackingTupleDomainFilter.TestBigintRange; import com.facebook.presto.orc.TrackingTupleDomainFilter.TestDoubleRange; @@ -26,26 +46,6 @@ import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Functions; @@ -123,6 +123,20 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.rescale; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; import static com.facebook.presto.orc.OrcTester.Format.DWRF; @@ -137,20 +151,6 @@ import static com.facebook.presto.orc.metadata.CompressionKind.SNAPPY; import static com.facebook.presto.orc.metadata.CompressionKind.ZLIB; import static com.facebook.presto.orc.metadata.CompressionKind.ZSTD; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.rescale; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestCachingOrcDataSource.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestCachingOrcDataSource.java index f164d32bc88dd..362128b5dedea 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestCachingOrcDataSource.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestCachingOrcDataSource.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; import com.facebook.presto.orc.OrcTester.Format; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.StripeInformation; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; @@ -42,6 +42,7 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.AbstractOrcRecordReader.LinearProbeRangeFinder.createTinyStripesRangeFinder; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcBatchRecordReader.wrapWithCacheIfTinyStripes; @@ -52,7 +53,6 @@ import static com.facebook.presto.orc.OrcTester.writeOrcFileColumnHive; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; import static com.facebook.presto.orc.metadata.CompressionKind.ZLIB; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory.javaStringObjectInspector; import static org.testng.Assert.assertEquals; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestDictionaryBuilder.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestDictionaryBuilder.java index 2556a4a49b9b6..0cc8040afeb40 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestDictionaryBuilder.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestDictionaryBuilder.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.VariableWidthBlock; import com.facebook.presto.orc.writer.DictionaryBuilder; -import com.facebook.presto.spi.block.VariableWidthBlock; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java index 06162b2a47fe3..3354e65dae718 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatBatchStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatBatchStreamReader.java index 09f8eb6297043..01b884eac86a0 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatBatchStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatBatchStreamReader.java @@ -14,27 +14,27 @@ package com.facebook.presto.orc; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java index 055c2f561d9c1..112a051e4f634 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java @@ -15,21 +15,21 @@ import com.facebook.presto.Session; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.relation.Predicate; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; @@ -47,6 +47,13 @@ import java.util.function.Function; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.OrcTester.arrayType; import static com.facebook.presto.orc.OrcTester.assertFileContentsPresto; import static com.facebook.presto.orc.OrcTester.filterRows; @@ -58,13 +65,6 @@ import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; import static com.facebook.presto.orc.TupleDomainFilterUtils.toBigintValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java index 929492e1f5622..e739bf42b255c 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.TupleDomainOrcPredicate.ColumnReference; import com.facebook.presto.orc.metadata.OrcMetadataReader; import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; @@ -22,7 +23,6 @@ import com.facebook.presto.orc.protobuf.CodedInputStream; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.primitives.Longs; @@ -43,15 +43,15 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.TupleDomainOrcPredicate.checkInBloomFilter; import static com.facebook.presto.orc.TupleDomainOrcPredicate.extractDiscreteValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.slice.Slices.wrappedBuffer; import static org.testng.Assert.assertEquals; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcLz4.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcLz4.java index c5e3afa7878c4..d9dc19225eb20 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcLz4.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcLz4.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; import org.joda.time.DateTimeZone; @@ -23,12 +23,12 @@ import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.orc.metadata.CompressionKind.LZ4; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.io.Resources.getResource; import static com.google.common.io.Resources.toByteArray; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java index 9b9ce860d3d4a..faef32c44876c 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderMemoryUsage.java @@ -14,13 +14,13 @@ package com.facebook.presto.orc; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.metadata.CompressionKind; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Strings; @@ -39,6 +39,10 @@ import java.util.HashMap; import static com.facebook.airlift.testing.Assertions.assertGreaterThan; +import static com.facebook.presto.common.block.MethodHandleUtil.compose; +import static com.facebook.presto.common.block.MethodHandleUtil.nativeValueGetter; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; @@ -46,10 +50,6 @@ import static com.facebook.presto.orc.OrcTester.createCustomOrcRecordReader; import static com.facebook.presto.orc.OrcTester.createOrcRecordWriter; import static com.facebook.presto.orc.OrcTester.createSettableStructObjectInspector; -import static com.facebook.presto.spi.block.MethodHandleUtil.compose; -import static com.facebook.presto.spi.block.MethodHandleUtil.nativeValueGetter; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestOrcReaderMemoryUsage diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderPositions.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderPositions.java index 45967cec06ace..7cc0fb07322b1 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderPositions.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcReaderPositions.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.metadata.Footer; import com.facebook.presto.orc.metadata.statistics.IntegerStatistics; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; @@ -45,6 +45,8 @@ import java.nio.ByteBuffer; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.BATCH_SIZE_GROWTH_FACTOR; @@ -55,8 +57,6 @@ import static com.facebook.presto.orc.OrcTester.createCustomOrcRecordReader; import static com.facebook.presto.orc.OrcTester.createOrcRecordWriter; import static com.facebook.presto.orc.OrcTester.createSettableStructObjectInspector; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.lang.Math.min; import static java.nio.charset.StandardCharsets.UTF_8; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java index 4e8f2cff7e3e1..11b1a3c6e09f5 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.Footer; @@ -22,8 +24,6 @@ import com.facebook.presto.orc.stream.DataOutput; import com.facebook.presto.orc.stream.OrcInputStream; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slices; @@ -37,6 +37,7 @@ import java.util.Optional; import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcTester.HIVE_STORAGE_TIME_ZONE; @@ -44,7 +45,6 @@ import static com.facebook.presto.orc.TestingOrcPredicate.ORC_ROW_GROUP_SIZE; import static com.facebook.presto.orc.TestingOrcPredicate.ORC_STRIPE_SIZE; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.lang.Math.toIntExact; import static org.testng.Assert.assertFalse; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java index 88a330cb8811e..e17b47fcfcae4 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; @@ -26,6 +26,13 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcPredicate.TRUE; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; @@ -35,13 +42,6 @@ import static com.facebook.presto.orc.TupleDomainOrcPredicate.ColumnReference; import static com.facebook.presto.orc.metadata.CompressionKind.SNAPPY; import static com.facebook.presto.spi.predicate.TupleDomain.fromFixedValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.Iterables.cycle; import static com.google.common.collect.Iterables.limit; import static com.google.common.collect.Lists.newArrayList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java index 362065220f8d5..74aaa330aabe5 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java @@ -14,6 +14,13 @@ package com.facebook.presto.orc; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcTester.OrcReaderSettings; import com.facebook.presto.orc.TupleDomainFilter.BigintRange; import com.facebook.presto.orc.TupleDomainFilter.BigintValuesUsingHashTable; @@ -23,13 +30,6 @@ import com.facebook.presto.orc.TupleDomainFilter.DoubleRange; import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Strings; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ContiguousSet; @@ -55,6 +55,18 @@ import java.util.function.Function; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.OrcTester.HIVE_STORAGE_TIME_ZONE; import static com.facebook.presto.orc.OrcTester.arrayType; import static com.facebook.presto.orc.OrcTester.mapType; @@ -63,18 +75,6 @@ import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; import static com.facebook.presto.orc.TupleDomainFilterUtils.toBigintValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestSliceDictionaryColumnWriter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestSliceDictionaryColumnWriter.java index fe6762b66f093..54144808f573f 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestSliceDictionaryColumnWriter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestSliceDictionaryColumnWriter.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.orc.writer.SliceDictionaryColumnWriter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import io.airlift.slice.Slices; import io.airlift.units.DataSize; import org.testng.annotations.Test; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.OrcWriterOptions.DEFAULT_MAX_COMPRESSION_BUFFER_SIZE; import static com.facebook.presto.orc.OrcWriterOptions.DEFAULT_MAX_STRING_STATISTICS_LIMIT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.lang.Math.toIntExact; import static org.testng.Assert.assertFalse; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java index 280fd8bfa828a..2697b37dfd608 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java @@ -14,18 +14,18 @@ package com.facebook.presto.orc; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -45,6 +45,7 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.NoopOrcAggregatedMemoryContext.NOOP_ORC_AGGREGATED_MEMORY_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcTester.HIVE_STORAGE_TIME_ZONE; @@ -52,7 +53,6 @@ import static com.facebook.presto.orc.TestingOrcPredicate.ORC_ROW_GROUP_SIZE; import static com.facebook.presto.orc.TestingOrcPredicate.ORC_STRIPE_SIZE; import static com.facebook.presto.orc.metadata.CompressionKind.NONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static org.joda.time.DateTimeZone.UTC; import static org.testng.Assert.assertEquals; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilter.java index 08f70d6fa5304..1487ca4c976f7 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilter.java @@ -32,7 +32,7 @@ import java.math.BigDecimal; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; import static io.airlift.slice.SizeOf.SIZE_OF_LONG; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java index 0cb02f0155b02..9e2c4a78e94b1 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java @@ -15,6 +15,11 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.orc.TupleDomainFilter.BigintMultiRange; @@ -30,11 +35,6 @@ import com.facebook.presto.orc.TupleDomainFilter.LongDecimalRange; import com.facebook.presto.orc.TupleDomainFilter.MultiRange; import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; import com.facebook.presto.sql.planner.LiteralEncoder; @@ -72,29 +72,29 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; import static com.facebook.presto.orc.TupleDomainFilter.ALWAYS_FALSE; import static com.facebook.presto.orc.TupleDomainFilter.IS_NOT_NULL; import static com.facebook.presto.orc.TupleDomainFilter.IS_NULL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.ExpressionUtils.or; import static com.facebook.presto.sql.planner.LiteralEncoder.getMagicLiteralFunctionSignature; import static com.facebook.presto.sql.tree.BooleanLiteral.FALSE_LITERAL; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java index b5a958410855b..5963b393876f3 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.metadata.statistics.BinaryStatistics; import com.facebook.presto.orc.metadata.statistics.BooleanStatistics; import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; @@ -24,12 +25,21 @@ import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.testng.annotations.Test; import java.math.BigDecimal; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.Decimals.encodeScaledValue; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.TupleDomainOrcPredicate.getDomain; import static com.facebook.presto.orc.metadata.statistics.ShortDecimalStatisticsBuilder.SHORT_DECIMAL_VALUE_BYTES; import static com.facebook.presto.spi.predicate.Domain.create; @@ -39,16 +49,6 @@ import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; import static com.facebook.presto.spi.predicate.Range.lessThanOrEqual; import static com.facebook.presto.spi.predicate.Range.range; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.Decimals.encodeScaledValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static org.testng.Assert.assertEquals; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestingOrcPredicate.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestingOrcPredicate.java index 722bd4eb6f904..bad0a1c31f0ef 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestingOrcPredicate.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestingOrcPredicate.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.OrcTester.Format; import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.metadata.statistics.HiveBloomFilter; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.Iterables; import com.google.common.collect.Ordering; import io.airlift.slice.Slice; @@ -37,19 +37,19 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.orc.OrcTester.Format.DWRF; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.Predicates.equalTo; import static com.google.common.base.Predicates.notNull; import static com.google.common.collect.ImmutableList.toImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestDecimalStream.java b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestDecimalStream.java index 44d2aa79f8938..797dfd9c8b86d 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestDecimalStream.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestDecimalStream.java @@ -27,10 +27,10 @@ import java.math.BigInteger; import java.util.Optional; -import static com.facebook.presto.spi.type.Decimals.MAX_DECIMAL_UNSCALED_VALUE; -import static com.facebook.presto.spi.type.Decimals.MIN_DECIMAL_UNSCALED_VALUE; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; +import static com.facebook.presto.common.type.Decimals.MAX_DECIMAL_UNSCALED_VALUE; +import static com.facebook.presto.common.type.Decimals.MIN_DECIMAL_UNSCALED_VALUE; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimalToBigInteger; import static java.math.BigInteger.ONE; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertThrows; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestLongDecimalStream.java b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestLongDecimalStream.java index dccfec3cdcb16..35911873ab2bd 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestLongDecimalStream.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestLongDecimalStream.java @@ -27,9 +27,9 @@ import java.util.Optional; import java.util.Random; +import static com.facebook.presto.common.type.UnscaledDecimal128Arithmetic.unscaledDecimal; import static com.facebook.presto.orc.OrcDecompressor.createOrcDecompressor; import static com.facebook.presto.orc.metadata.CompressionKind.SNAPPY; -import static com.facebook.presto.spi.type.UnscaledDecimal128Arithmetic.unscaledDecimal; public class TestLongDecimalStream extends AbstractTestValueStream diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestShortDecimalStream.java b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestShortDecimalStream.java index a261cde22ae06..8e6ba158b75b7 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestShortDecimalStream.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/stream/TestShortDecimalStream.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc.stream; +import com.facebook.presto.common.type.Decimals; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcDecompressor; import com.facebook.presto.orc.TestingHiveOrcAggregatedMemoryContext; import com.facebook.presto.orc.checkpoint.DecimalStreamCheckpoint; -import com.facebook.presto.spi.type.Decimals; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/Field.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/Field.java index c3ceea2db14f7..38718e85d49ba 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/Field.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/Field.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.parquet; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import static java.util.Objects.requireNonNull; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/GroupField.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/GroupField.java index 8618bb02940f7..544229b2493a1 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/GroupField.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/GroupField.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.parquet; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java index 7939e755d8f6f..e1385a9a280fb 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java @@ -15,8 +15,8 @@ import com.facebook.presto.common.Subfield; import com.facebook.presto.common.Subfield.PathElement; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import org.apache.parquet.column.Encoding; import org.apache.parquet.io.ColumnIO; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/PrimitiveField.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/PrimitiveField.java index 71915444bba0a..0dc3b16972cfb 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/PrimitiveField.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/PrimitiveField.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.parquet; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import static java.util.Objects.requireNonNull; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java index ff5a82f1cd6c2..5a728caf1c158 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.parquet.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.DictionaryPage; import com.facebook.presto.parquet.ParquetCorruptionException; import com.facebook.presto.parquet.ParquetDataSource; import com.facebook.presto.parquet.ParquetEncoding; import com.facebook.presto.parquet.RichColumnDescriptor; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -47,11 +47,11 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.parquet.ParquetCompressionUtils.decompress; import static com.facebook.presto.parquet.ParquetTypeUtils.getParquetEncoding; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static com.google.common.base.Verify.verify; import static io.airlift.slice.Slices.wrappedBuffer; import static java.lang.Math.toIntExact; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java index 3abcedb011563..fca232d2e4910 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.parquet.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.DictionaryPage; import com.facebook.presto.parquet.ParquetCorruptionException; import com.facebook.presto.parquet.ParquetDataSourceId; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; @@ -44,16 +44,16 @@ import java.util.Optional; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.parquet.predicate.PredicateUtils.isStatisticsOverflow; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static java.lang.Float.floatToRawIntBits; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BinaryColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BinaryColumnReader.java index c4e9f73ae3f01..0e841e562330a 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BinaryColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BinaryColumnReader.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import org.apache.parquet.io.api.Binary; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static io.airlift.slice.Slices.EMPTY_SLICE; import static io.airlift.slice.Slices.wrappedBuffer; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BooleanColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BooleanColumnReader.java index 24bc03236a299..8de8489f29316 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BooleanColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/BooleanColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; public class BooleanColumnReader extends PrimitiveColumnReader diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ColumnChunk.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ColumnChunk.java index f4a1a8dcf3dcc..abf7575c4fa20 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ColumnChunk.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ColumnChunk.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.parquet.reader; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import static java.util.Objects.requireNonNull; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DecimalColumnReaderFactory.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DecimalColumnReaderFactory.java index 4616f0563bc56..70bde365e5938 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DecimalColumnReaderFactory.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DecimalColumnReaderFactory.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.type.DecimalType; public final class DecimalColumnReaderFactory { diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DoubleColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DoubleColumnReader.java index 5adb4ee8fbd3e..78da89658a3f0 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DoubleColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/DoubleColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; public class DoubleColumnReader extends PrimitiveColumnReader diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/FloatColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/FloatColumnReader.java index d8e8253d65cf4..84a9eeeb4d9f3 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/FloatColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/FloatColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/IntColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/IntColumnReader.java index 33e5d3d477388..cc5782b803b43 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/IntColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/IntColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; public class IntColumnReader extends PrimitiveColumnReader diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongColumnReader.java index a4284b5fb8964..c5fe52a77975f 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; public class LongColumnReader extends PrimitiveColumnReader diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongDecimalColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongDecimalColumnReader.java index 4ee0893797df4..1c6e343b88fe6 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongDecimalColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/LongDecimalColumnReader.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import org.apache.parquet.io.api.Binary; import java.math.BigInteger; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java index 9f34ca7c9a23a..c9a4fc407b2f7 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ParquetReader.java @@ -13,6 +13,13 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RowBlock; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.parquet.Field; @@ -21,13 +28,6 @@ import com.facebook.presto.parquet.ParquetDataSource; import com.facebook.presto.parquet.PrimitiveField; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RowBlock; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; import io.airlift.units.DataSize; import it.unimi.dsi.fastutil.booleans.BooleanArrayList; import it.unimi.dsi.fastutil.booleans.BooleanList; @@ -46,11 +46,11 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; import static com.facebook.presto.parquet.ParquetValidationUtils.validateParquet; import static com.facebook.presto.parquet.reader.ListColumnReader.calculateCollectionOffsets; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Math.max; import static java.lang.Math.min; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PrimitiveColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PrimitiveColumnReader.java index 66dd2da30571d..b6f91d669ed39 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PrimitiveColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/PrimitiveColumnReader.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.DataPage; import com.facebook.presto.parquet.DataPageV1; import com.facebook.presto.parquet.DataPageV2; @@ -23,9 +26,6 @@ import com.facebook.presto.parquet.RichColumnDescriptor; import com.facebook.presto.parquet.dictionary.Dictionary; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ShortDecimalColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ShortDecimalColumnReader.java index 910ec6452288c..4f04bbe6b9c00 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ShortDecimalColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/ShortDecimalColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import static com.facebook.presto.parquet.ParquetTypeUtils.getShortDecimalValue; import static org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/TimestampColumnReader.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/TimestampColumnReader.java index a760150cf4e28..bf1a9b04e7c7c 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/TimestampColumnReader.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/reader/TimestampColumnReader.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.reader; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import org.apache.parquet.io.api.Binary; import static com.facebook.presto.parquet.ParquetTimestampUtils.getTimestampMillis; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ArrayColumnWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ArrayColumnWriter.java index 6a5dbfc1aa8f0..f928b9cabfc46 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ArrayColumnWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ArrayColumnWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.block.ColumnarArray; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterables; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterables; -import com.facebook.presto.spi.block.ColumnarArray; import com.google.common.collect.ImmutableList; import java.io.IOException; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ColumnChunk.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ColumnChunk.java index 3091cf93bde01..1dd166dee65e2 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ColumnChunk.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ColumnChunk.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.block.Block; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/MapColumnWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/MapColumnWriter.java index ceffb156cf8b1..c47ce96f288bb 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/MapColumnWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/MapColumnWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.block.ColumnarMap; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterables; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterables; -import com.facebook.presto.spi.block.ColumnarMap; import com.google.common.collect.ImmutableList; import java.io.IOException; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetSchemaConverter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetSchemaConverter.java index aeec9f4cb7635..7b469091fbcad 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetSchemaConverter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetSchemaConverter.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import org.apache.parquet.schema.GroupType; import org.apache.parquet.schema.MessageType; @@ -34,18 +34,18 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static java.lang.String.format; import static java.util.Objects.requireNonNull; import static org.apache.parquet.Preconditions.checkArgument; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java index 44144b2eb6359..659595c384ef2 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.writer.ColumnWriter.BufferData; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.OutputStreamSliceOutput; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriters.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriters.java index ee893ae0b8d2b..89299bc6f0f3d 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriters.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriters.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.parquet.writer.valuewriter.BigintValueWriter; import com.facebook.presto.parquet.writer.valuewriter.BooleanValueWriter; import com.facebook.presto.parquet.writer.valuewriter.CharValueWriter; @@ -23,12 +29,6 @@ import com.facebook.presto.parquet.writer.valuewriter.PrimitiveValueWriter; import com.facebook.presto.parquet.writer.valuewriter.RealValueWriter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import org.apache.parquet.column.ColumnDescriptor; import org.apache.parquet.column.ParquetProperties; @@ -42,15 +42,15 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -151,7 +151,7 @@ private String[] currentPath() } } - private static PrimitiveValueWriter getValueWriter(ValuesWriter valuesWriter, com.facebook.presto.spi.type.Type type, PrimitiveType parquetType) + private static PrimitiveValueWriter getValueWriter(ValuesWriter valuesWriter, com.facebook.presto.common.type.Type type, PrimitiveType parquetType) { if (BOOLEAN.equals(type)) { return new BooleanValueWriter(valuesWriter, parquetType); diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/PrimitiveColumnWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/PrimitiveColumnWriter.java index d849fe5d7612e..d42b2876e1dcd 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/PrimitiveColumnWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/PrimitiveColumnWriter.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterables; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterables; import com.facebook.presto.parquet.writer.valuewriter.PrimitiveValueWriter; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.apache.parquet.bytes.BytesInput; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/StructColumnWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/StructColumnWriter.java index 836d4ba764fe3..c282da0960fbf 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/StructColumnWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/StructColumnWriter.java @@ -13,18 +13,18 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarRow; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterables; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterables; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarRow; import com.google.common.collect.ImmutableList; import java.io.IOException; import java.util.List; -import static com.facebook.presto.spi.block.ColumnarRow.toColumnarRow; +import static com.facebook.presto.common.block.ColumnarRow.toColumnarRow; import static java.util.Objects.requireNonNull; import static org.apache.parquet.Preconditions.checkArgument; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/DefinitionLevelIterables.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/DefinitionLevelIterables.java index e985a7a059918..59e98063e993a 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/DefinitionLevelIterables.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/DefinitionLevelIterables.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.levels; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; +import com.facebook.presto.common.block.ColumnarRow; import com.facebook.presto.parquet.writer.levels.DefinitionLevelIterable.DefinitionLevelIterator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; -import com.facebook.presto.spi.block.ColumnarRow; import com.google.common.collect.AbstractIterator; import java.util.Iterator; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/RepetitionLevelIterables.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/RepetitionLevelIterables.java index 18608c59fbcb7..5fb2da2b32c7c 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/RepetitionLevelIterables.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/levels/RepetitionLevelIterables.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.levels; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ColumnarArray; +import com.facebook.presto.common.block.ColumnarMap; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable.RepetitionLevel; import com.facebook.presto.parquet.writer.levels.RepetitionLevelIterable.RepetitionValueIterator; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ColumnarArray; -import com.facebook.presto.spi.block.ColumnarMap; import com.google.common.collect.AbstractIterator; import java.util.Iterator; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BigintValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BigintValueWriter.java index a0063f67d2754..007cdc94cc7eb 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BigintValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BigintValueWriter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BooleanValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BooleanValueWriter.java index e10a763338f94..57a8f2c392db9 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BooleanValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/BooleanValueWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static java.util.Objects.requireNonNull; public class BooleanValueWriter diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/CharValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/CharValueWriter.java index e068a89c4c198..3b156fcfda5f3 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/CharValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/CharValueWriter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.io.api.Binary; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DateValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DateValueWriter.java index 31fd57be178dd..ef7b87e936594 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DateValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DateValueWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; -import static com.facebook.presto.spi.type.DateType.DATE; +import static com.facebook.presto.common.type.DateType.DATE; import static java.util.Objects.requireNonNull; public class DateValueWriter diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DecimalValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DecimalValueWriter.java index 5c056b6b5ea5a..7b8ebbe69d97e 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DecimalValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DecimalValueWriter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.io.api.Binary; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DoubleValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DoubleValueWriter.java index c09e0b370e114..64e3aa2299ad6 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DoubleValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/DoubleValueWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static java.util.Objects.requireNonNull; public class DoubleValueWriter diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/IntegerValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/IntegerValueWriter.java index 00a316a012d4c..4415453224a78 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/IntegerValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/IntegerValueWriter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/PrimitiveValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/PrimitiveValueWriter.java index f180011ba1ff9..c1263b4a66743 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/PrimitiveValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/PrimitiveValueWriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.apache.parquet.bytes.BytesInput; import org.apache.parquet.column.Encoding; import org.apache.parquet.column.page.DictionaryPage; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/RealValueWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/RealValueWriter.java index 6886b855db161..3d1166f557a8f 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/RealValueWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/valuewriter/RealValueWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.parquet.writer.valuewriter; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import org.apache.parquet.column.values.ValuesWriter; import org.apache.parquet.schema.PrimitiveType; -import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.common.type.RealType.REAL; import static java.lang.Float.intBitsToFloat; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java index 2a862f7c8033d..9cf6541873e34 100644 --- a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java +++ b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java @@ -13,26 +13,26 @@ */ package org.apache.parquet.io; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.parquet.Field; import com.facebook.presto.parquet.GroupField; import com.facebook.presto.parquet.PrimitiveField; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.Locale; import java.util.Optional; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; import static com.facebook.presto.parquet.ParquetTypeUtils.getArrayElementColumn; import static com.facebook.presto.parquet.ParquetTypeUtils.getMapKeyValueColumn; import static com.facebook.presto.parquet.ParquetTypeUtils.lookupColumnByName; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; import static org.apache.parquet.schema.Type.Repetition.OPTIONAL; /** diff --git a/presto-parquet/src/test/java/com/facebook/presto/parquet/BenchmarkParquetReader.java b/presto-parquet/src/test/java/com/facebook/presto/parquet/BenchmarkParquetReader.java index 05616deb7fbb1..9226b21a449e2 100644 --- a/presto-parquet/src/test/java/com/facebook/presto/parquet/BenchmarkParquetReader.java +++ b/presto-parquet/src/test/java/com/facebook/presto/parquet/BenchmarkParquetReader.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.parquet; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.parquet.reader.MetadataReader; import com.facebook.presto.parquet.reader.ParquetReader; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Strings; import io.airlift.units.DataSize; import org.apache.hadoop.conf.Configuration; @@ -54,12 +54,12 @@ import java.util.Random; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; import static com.facebook.presto.parquet.ParquetTypeUtils.getColumnIO; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.io.Files.createTempDir; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-parquet/src/test/java/com/facebook/presto/parquet/ParquetTestUtils.java b/presto-parquet/src/test/java/com/facebook/presto/parquet/ParquetTestUtils.java index fee0f038f1b7b..c4d37c9602f80 100644 --- a/presto-parquet/src/test/java/com/facebook/presto/parquet/ParquetTestUtils.java +++ b/presto-parquet/src/test/java/com/facebook/presto/parquet/ParquetTestUtils.java @@ -14,18 +14,18 @@ package com.facebook.presto.parquet; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; @@ -77,13 +77,13 @@ import java.util.List; import java.util.Properties; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static io.airlift.units.DataSize.Unit.KILOBYTE; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.lang.String.format; diff --git a/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java b/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java index d0347acdb943e..661f89f916787 100644 --- a/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java +++ b/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.parquet; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.parquet.predicate.DictionaryDescriptor; import com.facebook.presto.parquet.predicate.TupleDomainParquetPredicate; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -37,6 +37,16 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.parquet.ParquetEncoding.PLAIN_DICTIONARY; import static com.facebook.presto.parquet.predicate.TupleDomainParquetPredicate.getDomain; import static com.facebook.presto.spi.predicate.Domain.create; @@ -44,16 +54,6 @@ import static com.facebook.presto.spi.predicate.Domain.singleValue; import static com.facebook.presto.spi.predicate.Range.range; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static io.airlift.slice.Slices.EMPTY_SLICE; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java index b4c33a7bb5ade..e84082f7d9371 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java @@ -14,24 +14,24 @@ package com.facebook.presto.pinot; import com.facebook.airlift.http.client.Request; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.FixedWidthType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.pinot.query.PinotQueryGenerator.GeneratedPql; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.FixedWidthType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumn.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumn.java index 52690d5eb9488..f8b682624b6ac 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumn.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumn.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.pinot; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnHandle.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnHandle.java index c655a704ff848..271be8c734bce 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnHandle.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnHandle.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnMetadata.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnMetadata.java index be5e5bcd97d63..d9545744d15e6 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnMetadata.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnMetadata.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import java.util.Objects; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnUtils.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnUtils.java index 328f3fd26a871..5dd595c2ab78e 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnUtils.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotColumnUtils.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.pinot; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import org.apache.pinot.common.data.DateTimeFieldSpec; import org.apache.pinot.common.data.FieldSpec; import org.apache.pinot.common.data.FieldSpec.DataType; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnectorFactory.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnectorFactory.java index 08348f268c016..73a4516889e9f 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnectorFactory.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotConnectorFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.ConnectorId; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import com.google.inject.Scopes; import org.weakref.jmx.guice.MBeanModule; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotModule.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotModule.java index c42f7a831f172..76b4aa7e059b7 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotModule.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotModule.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.pinot.query.PinotQueryGenerator; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -34,7 +34,7 @@ import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.units.DataSize.Unit.MEGABYTE; import static java.util.Objects.requireNonNull; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotNodePartitioningProvider.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotNodePartitioningProvider.java index a7500a4d8fefe..e626a0ff070a9 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotNodePartitioningProvider.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.function.ToIntFunction; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java index 7c7d733d004ea..61106c511f85a 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPlanOptimizer.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.pinot.query.PinotFilterExpressionConverter; import com.facebook.presto.pinot.query.PinotQueryGenerator; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import javax.inject.Inject; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java index c468d3e2eb3c2..ea8b71d4a1bf1 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotPushdownUtils.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.pinot; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -43,8 +43,8 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.Decimals.decodeUnscaledValue; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNSUPPORTED_EXPRESSION; -import static com.facebook.presto.spi.type.Decimals.decodeUnscaledValue; import static com.google.common.base.Preconditions.checkState; import static java.lang.Float.intBitsToFloat; import static java.lang.String.format; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java index f7cc85306cc94..37011017abef3 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.pinot.PinotScatterGatherQueryClient.ErrorCode; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -37,14 +37,14 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_EXCEPTION; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_INSUFFICIENT_SERVER_RESPONSE; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_INVALID_PQL_GENERATED; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNCLASSIFIED_ERROR; import static com.facebook.presto.pinot.PinotErrorCode.PINOT_UNSUPPORTED_COLUMN_TYPE; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; @@ -257,9 +257,9 @@ public void close() } /** - * Generates the {@link com.facebook.presto.spi.block.Block} for the specific column from the {@link #currentDataTable}. + * Generates the {@link com.facebook.presto.common.block.Block} for the specific column from the {@link #currentDataTable}. * - *

Based on the original Pinot column types, write as Presto-supported values to {@link com.facebook.presto.spi.block.BlockBuilder}, e.g. + *

Based on the original Pinot column types, write as Presto-supported values to {@link com.facebook.presto.common.block.BlockBuilder}, e.g. * FLOAT -> Double, INT -> Long, String -> Slice. * * @param blockBuilder blockBuilder for the current column diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSessionProperties.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSessionProperties.java index ea7ed2bc16251..2cde790368c44 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSessionProperties.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSessionProperties.java @@ -24,10 +24,10 @@ import java.util.List; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; public class PinotSessionProperties diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java index fdad2c6015197..fd19889054131 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotAggregationProjectConverter.java @@ -14,6 +14,7 @@ package com.facebook.presto.pinot.query; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.PinotSessionProperties; import com.facebook.presto.spi.ConnectorSession; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import org.joda.time.DateTimeZone; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java index 8905ddd0da126..c44ebc1adbf65 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotFilterExpressionConverter.java @@ -14,6 +14,8 @@ package com.facebook.presto.pinot.query; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Origin; import com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Selection; @@ -29,8 +31,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import java.util.List; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotProjectExpressionConverter.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotProjectExpressionConverter.java index 51e0ba8f20679..770027514b7f9 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotProjectExpressionConverter.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotProjectExpressionConverter.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.pinot.query; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Selection; import com.facebook.presto.spi.function.FunctionHandle; @@ -25,9 +28,6 @@ import com.facebook.presto.spi.relation.RowExpressionVisitor; import com.facebook.presto.spi.relation.SpecialFormExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import java.util.Map; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGenerator.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGenerator.java index ceee120bc2994..78935953af40e 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGenerator.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGenerator.java @@ -14,6 +14,8 @@ package com.facebook.presto.pinot.query; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.pinot.PinotColumnHandle; import com.facebook.presto.pinot.PinotConfig; import com.facebook.presto.pinot.PinotException; @@ -40,8 +42,6 @@ import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableMap; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java index fb383ce4a7490..32dc48b84efe0 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/query/PinotQueryGeneratorContext.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.pinot.query; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.pinot.PinotColumnHandle; import com.facebook.presto.pinot.PinotConfig; import com.facebook.presto.pinot.PinotException; import com.facebook.presto.pinot.PinotSessionProperties; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/MetadataUtil.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/MetadataUtil.java index f695d394aab6a..e3255a3913e91 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/MetadataUtil.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/MetadataUtil.java @@ -16,8 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; @@ -27,11 +27,11 @@ import java.util.Map; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java index d7531be81470a..4643a7bcd1b97 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotBrokerPageSource.java @@ -14,10 +14,10 @@ package com.facebook.presto.pinot; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.pinot.query.PinotQueryGenerator; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorSession; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -33,7 +33,7 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableList.toImmutableList; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnHandle.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnHandle.java index b6b50bc3f6e12..47a2e4f26d061 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnHandle.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnHandle.java @@ -16,11 +16,11 @@ import com.facebook.airlift.testing.EquivalenceTester; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.pinot.MetadataUtil.COLUMN_CODEC; import static com.facebook.presto.pinot.PinotColumnHandle.PinotColumnType.DERIVED; import static com.facebook.presto.pinot.PinotColumnHandle.PinotColumnType.REGULAR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestPinotColumnHandle diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnMetadata.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnMetadata.java index 9565f77d8a3f2..1303fcf4515fa 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnMetadata.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotColumnMetadata.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.pinot; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableMap; import org.apache.pinot.common.data.FieldSpec; import org.apache.pinot.common.data.Schema; @@ -27,10 +27,10 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; public class TestPinotColumnMetadata diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java index b822119d3db44..eb2c7464a3095 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotQueryBase.java @@ -16,6 +16,9 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -26,7 +29,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.Assignments; import com.facebook.presto.spi.plan.FilterNode; @@ -41,8 +43,6 @@ import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.ParsingOptions; @@ -67,13 +67,13 @@ import java.util.Optional; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.pinot.PinotColumnHandle.PinotColumnType.REGULAR; import static com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Origin.DERIVED; import static com.facebook.presto.pinot.query.PinotQueryGeneratorContext.Origin.TABLE_COLUMN; import static com.facebook.presto.spi.plan.LimitNode.Step.FINAL; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Locale.ENGLISH; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java index cbe9ccda5a8f6..9935a204cd0e9 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.testing.assertions.Assert; import com.google.common.collect.ImmutableList; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java index 6c27e72268075..d069180ef5c6f 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSplitManager.java @@ -31,10 +31,10 @@ import java.util.concurrent.Executors; import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.pinot.PinotSplit.SplitType.BROKER; import static com.facebook.presto.pinot.PinotSplit.SplitType.SEGMENT; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static java.util.Locale.ENGLISH; import static java.util.stream.Collectors.toList; import static org.testng.Assert.assertEquals; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotPlanOptimizer.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotPlanOptimizer.java index 5d42540dc3a10..a91c3fddd0fdf 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotPlanOptimizer.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotPlanOptimizer.java @@ -53,7 +53,7 @@ import java.util.Optional; import java.util.regex.Pattern; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.node; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotQueryGenerator.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotQueryGenerator.java index 3b2b6e289dd3f..1083df301329f 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotQueryGenerator.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/query/TestPinotQueryGenerator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.pinot.query; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.pinot.PinotConfig; import com.facebook.presto.pinot.PinotTableHandle; import com.facebook.presto.pinot.TestPinotQueryBase; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.Ordering; import com.facebook.presto.spi.plan.OrderingScheme; @@ -37,7 +37,7 @@ import java.util.function.Function; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static java.lang.String.format; import static org.testng.Assert.assertEquals; diff --git a/presto-postgresql/src/main/java/com/facebook/presto/plugin/postgresql/PostgreSqlClient.java b/presto-postgresql/src/main/java/com/facebook/presto/plugin/postgresql/PostgreSqlClient.java index 9fb3d7abd3360..907ce55552283 100644 --- a/presto-postgresql/src/main/java/com/facebook/presto/plugin/postgresql/PostgreSqlClient.java +++ b/presto-postgresql/src/main/java/com/facebook/presto/plugin/postgresql/PostgreSqlClient.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.plugin.postgresql; +import com.facebook.presto.common.type.Type; import com.facebook.presto.plugin.jdbc.BaseJdbcClient; import com.facebook.presto.plugin.jdbc.BaseJdbcConfig; import com.facebook.presto.plugin.jdbc.DriverConnectionFactory; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; import org.postgresql.Driver; import javax.inject.Inject; @@ -34,9 +34,9 @@ import java.sql.SQLException; import java.util.Optional; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.plugin.jdbc.JdbcErrorCode.JDBC_ERROR; import static com.facebook.presto.spi.StandardErrorCode.ALREADY_EXISTS; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static java.lang.String.format; public class PostgreSqlClient diff --git a/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlTypeMapping.java b/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlTypeMapping.java index 3b3ddee730658..342159237cffc 100644 --- a/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlTypeMapping.java +++ b/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlTypeMapping.java @@ -15,7 +15,7 @@ import com.facebook.airlift.testing.postgresql.TestingPostgreSqlServer; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.tests.AbstractTestQueryFramework; import com.facebook.presto.tests.datatype.CreateAndInsertDataSetup; import com.facebook.presto.tests.datatype.CreateAsSelectDataSetup; @@ -35,9 +35,9 @@ import java.time.ZoneId; import java.util.function.Function; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.plugin.postgresql.PostgreSqlQueryRunner.createPostgreSqlQueryRunner; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static com.facebook.presto.tests.datatype.DataType.bigintDataType; import static com.facebook.presto.tests.datatype.DataType.booleanDataType; import static com.facebook.presto.tests.datatype.DataType.dateDataType; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java index b83231592ab04..ba19b1f778aff 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.XxHash64; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; public class RaptorBucketFunction diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorColumnHandle.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorColumnHandle.java index 14258580e2a71..9795e9fb82d07 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorColumnHandle.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorColumnHandle.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.Objects; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static java.util.Objects.requireNonNull; public final class RaptorColumnHandle diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorConnectorFactory.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorConnectorFactory.java index 8f69857351e03..41eab12d88120 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorConnectorFactory.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorConnectorFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.backup.BackupModule; import com.facebook.presto.raptor.filesystem.FileSystemModule; import com.facebook.presto.raptor.security.RaptorSecurityModule; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableMap; import com.google.inject.Injector; import com.google.inject.Module; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorInsertTableHandle.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorInsertTableHandle.java index 35b8cf084b16f..fbcb97431823c 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorInsertTableHandle.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorInsertTableHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorInsertTableHandle; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java index 6c681fd3bb348..9f7f643b5f755 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java @@ -15,6 +15,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.ColumnInfo; import com.facebook.presto.raptor.metadata.DeltaInfoPair; import com.facebook.presto.raptor.metadata.Distribution; @@ -53,8 +55,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; import com.google.common.collect.ImmutableMap; @@ -83,6 +83,10 @@ import java.util.stream.Collectors; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.raptor.RaptorBucketFunction.validateBucketType; import static com.facebook.presto.raptor.RaptorColumnHandle.BUCKET_NUMBER_COLUMN_NAME; import static com.facebook.presto.raptor.RaptorColumnHandle.SHARD_UUID_COLUMN_NAME; @@ -117,10 +121,6 @@ import static com.facebook.presto.spi.StandardErrorCode.INVALID_TABLE_PROPERTY; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadataFactory.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadataFactory.java index b36f4f689aed9..c15a8b62efda8 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadataFactory.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadataFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.raptor.metadata.ShardManager; -import com.facebook.presto.spi.type.TypeManager; import org.skife.jdbi.v2.IDBI; import javax.inject.Inject; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorModule.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorModule.java index 8cfeceaa74c93..adfacc59d443e 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorModule.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorModule.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.Distribution; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.raptor.metadata.TableColumn; @@ -21,7 +22,6 @@ import com.facebook.presto.raptor.systemtables.TableStatsSystemTable; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Provides; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorNodePartitioningProvider.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorNodePartitioningProvider.java index e6df95d862958..3d69af5ec1472 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorNodePartitioningProvider.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import javax.inject.Inject; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorOutputTableHandle.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorOutputTableHandle.java index acb93ae2301e5..6042f8ef20ff3 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorOutputTableHandle.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorOutputTableHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorOutputTableHandle; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java index f78e0656e9b13..f6671f926f581 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java @@ -14,6 +14,10 @@ package com.facebook.presto.raptor; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.ShardInfo; import com.facebook.presto.raptor.storage.StorageManager; @@ -25,10 +29,6 @@ import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -45,9 +45,9 @@ import static com.facebook.airlift.concurrent.MoreFutures.allAsList; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_TOO_MANY_FILES_CREATED; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java index 82711ab0d474d..a08682e6928d8 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveFileContext; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.storage.ReaderAttributes; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import javax.inject.Inject; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSessionProperties.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSessionProperties.java index 62c71a9c26d96..58fab5c1dd519 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSessionProperties.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSessionProperties.java @@ -24,10 +24,10 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; import static com.facebook.presto.spi.session.PropertyMetadata.stringProperty; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; public class RaptorSessionProperties { diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java index 657986dee29cb..b973e1f195b73 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java index 3c65e33bc2141..2f699eeecb674 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.backup.BackupService; import com.facebook.presto.raptor.metadata.BucketShards; import com.facebook.presto.raptor.metadata.ShardManager; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.skife.jdbi.v2.ResultIterator; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableHandle.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableHandle.java index 5e38729567868..3f732b3b04106 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableHandle.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorTableHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableProperties.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableProperties.java index aea1537fdc28c..70d175fb6c0cc 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableProperties.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableProperties.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import javax.inject.Inject; @@ -24,10 +24,10 @@ import java.util.Map; import java.util.OptionalInt; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.spi.session.PropertyMetadata.booleanProperty; import static com.facebook.presto.spi.session.PropertyMetadata.integerProperty; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static java.util.Locale.ENGLISH; import static java.util.stream.Collectors.toList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/TriggerBucketBalancerProcedure.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/TriggerBucketBalancerProcedure.java index c17d1eeadf0d6..15d95129ca763 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/TriggerBucketBalancerProcedure.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/TriggerBucketBalancerProcedure.java @@ -22,7 +22,7 @@ import java.lang.invoke.MethodHandle; -import static com.facebook.presto.spi.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; import static java.util.Objects.requireNonNull; public class TriggerBucketBalancerProcedure diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ColumnInfo.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ColumnInfo.java index 3f12cf45e3445..36ae883f61f0a 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ColumnInfo.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ColumnInfo.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorColumnHandle; -import com.facebook.presto.spi.type.Type; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java index 5d41a5cf1cdf6..1769b3d1ea011 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java @@ -15,6 +15,7 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.stats.CounterStat; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.NodeSupplier; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.raptor.storage.organization.ShardOrganizerDao; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.Node; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Joiner; import com.google.common.base.Ticker; import com.google.common.cache.CacheBuilder; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/Distribution.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/Distribution.java index 88a15666f47cc..af399533144b0 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/Distribution.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/Distribution.java @@ -14,9 +14,9 @@ package com.facebook.presto.raptor.metadata; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import org.skife.jdbi.v2.StatementContext; import org.skife.jdbi.v2.tweak.ResultSetMapper; @@ -29,8 +29,8 @@ import java.util.Optional; import static com.facebook.airlift.json.JsonCodec.listJsonCodec; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_ERROR; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java index 1f8057bad33c3..50f8c7132367d 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.Ranges; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/TableColumn.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/TableColumn.java index 7cb24f400e7c2..962126084a768 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/TableColumn.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/TableColumn.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import org.skife.jdbi.v2.StatementContext; import org.skife.jdbi.v2.tweak.ResultSetMapper; @@ -26,8 +26,8 @@ import java.sql.SQLException; import java.util.OptionalInt; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.raptor.util.DatabaseUtil.getOptionalInt; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ColumnIndexStatsUtils.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ColumnIndexStatsUtils.java index 16c444d3053cf..2e8046902e30b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ColumnIndexStatsUtils.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ColumnIndexStatsUtils.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.raptor.storage; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import java.sql.JDBCType; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; public class ColumnIndexStatsUtils { diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java index fd490d5a9d3a8..c42dd242dd252 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java @@ -14,14 +14,14 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.LongArrayBlockBuilder; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.DeltaInfoPair; import com.facebook.presto.raptor.metadata.ShardDeleteDelta; import com.facebook.presto.raptor.metadata.ShardInfo; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.LongArrayBlockBuilder; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -40,8 +40,8 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static java.util.Objects.requireNonNull; import static java.util.concurrent.CompletableFuture.completedFuture; import static java.util.concurrent.CompletableFuture.supplyAsync; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/InplaceShardRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/InplaceShardRewriter.java index 183aa387096b5..72e27e115880b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/InplaceShardRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/InplaceShardRewriter.java @@ -14,11 +14,11 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.backup.BackupManager; import com.facebook.presto.raptor.metadata.ShardDelta; import com.facebook.presto.raptor.metadata.ShardInfo; import com.facebook.presto.raptor.metadata.ShardRecorder; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileMetadata.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileMetadata.java index c8da46111374c..83950d43e5378 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileMetadata.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileMetadata.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.storage; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableMap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java index 8001e79da81c8..64b08bd727ac4 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java @@ -15,6 +15,10 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.orc.OrcReader; @@ -27,11 +31,7 @@ import com.facebook.presto.raptor.RaptorOrcAggregatedMemoryContext; import com.facebook.presto.raptor.util.Closer; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.apache.hadoop.fs.FileSystem; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java index dd452c136ab7b..a1732f84fd2cb 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java @@ -14,6 +14,9 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcWriter; import com.facebook.presto.orc.OrcWriterOptions; @@ -21,9 +24,6 @@ import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java index 83dca269c9509..695b7239ee974 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.LazyBlock; +import com.facebook.presto.common.block.LazyBlockLoader; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; @@ -20,12 +26,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.LazyBlock; -import com.facebook.presto.spi.block.LazyBlockLoader; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.io.IOException; @@ -33,10 +33,10 @@ import java.util.OptionalInt; import java.util.UUID; +import static com.facebook.presto.common.predicate.Utils.nativeValueToBlock; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.orc.OrcReader.MAX_BATCH_SIZE; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_ERROR; -import static com.facebook.presto.spi.predicate.Utils.nativeValueToBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java index 294cad11d6c54..4533001248f3f 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java @@ -14,6 +14,19 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.NamedTypeSignature; +import com.facebook.presto.common.type.RowFieldName; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.hive.HiveFileContext; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcAggregatedMemoryContext; @@ -45,20 +58,7 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.NamedTypeSignature; -import com.facebook.presto.spi.type.RowFieldName; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -93,6 +93,13 @@ import static com.facebook.airlift.concurrent.MoreFutures.allAsList; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.raptor.RaptorColumnHandle.isBucketNumberColumn; @@ -110,13 +117,6 @@ import static com.facebook.presto.raptor.storage.OrcPageSource.SHARD_UUID_COLUMN; import static com.facebook.presto.raptor.storage.ShardStats.computeColumnStats; import static com.facebook.presto.raptor.storage.StorageManagerConfig.OrcOptimizedWriterStage.ENABLED_AND_VALIDATED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Throwables.throwIfInstanceOf; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java index 8f1e601c42d55..c5e0304a2add0 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.block.Block; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.Block; import io.airlift.slice.Slice; import java.util.BitSet; @@ -24,7 +24,7 @@ import java.util.Optional; import java.util.concurrent.CompletableFuture; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkState; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java index b8ab117f7476c..6d15260c21abd 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import io.airlift.slice.Slice; import org.apache.hadoop.hive.common.type.HiveDecimal; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ShardStats.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ShardStats.java index 81769ebf7f1c4..350613f2f7cb5 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ShardStats.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/ShardStats.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcPredicate; import com.facebook.presto.orc.OrcReader; import com.facebook.presto.raptor.RaptorOrcAggregatedMemoryContext; import com.facebook.presto.raptor.metadata.ColumnStats; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; @@ -34,11 +34,11 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.orc.OrcReader.INITIAL_BATCH_SIZE; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_ERROR; import static com.facebook.presto.raptor.storage.OrcStorageManager.toOrcFileType; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static java.lang.Double.isInfinite; import static java.lang.Double.isNaN; import static org.joda.time.DateTimeZone.UTC; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java index 6cd979f2a5e8c..347f64ae8356b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveFileContext; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Map; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManagerConfig.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManagerConfig.java index deddcb12a24b8..6e5424b28a0c7 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManagerConfig.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManagerConfig.java @@ -17,8 +17,8 @@ import com.facebook.airlift.configuration.ConfigDescription; import com.facebook.airlift.configuration.DefunctConfig; import com.facebook.airlift.configuration.LegacyConfig; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.orc.metadata.CompressionKind; -import com.facebook.presto.spi.type.TimeZoneKey; import io.airlift.units.DataSize; import io.airlift.units.Duration; import io.airlift.units.MaxDataSize; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageTypeConverter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageTypeConverter.java index ce224f388ee81..0dd6677e6d2b3 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageTypeConverter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageTypeConverter.java @@ -13,33 +13,33 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.google.common.collect.ImmutableList; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/OrganizationJob.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/OrganizationJob.java index 2470dd7153d3f..5c8146de49213 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/OrganizationJob.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/OrganizationJob.java @@ -30,7 +30,7 @@ import java.util.OptionalLong; import java.util.UUID; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Collections.nCopies; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactionManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactionManager.java index cafcdc2285d7f..e5a873c6005f3 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactionManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactionManager.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.storage.organization; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.raptor.metadata.ShardManager; @@ -22,7 +23,6 @@ import com.facebook.presto.raptor.metadata.TableColumn; import com.facebook.presto.raptor.storage.StorageManagerConfig; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimaps; @@ -45,10 +45,10 @@ import java.util.concurrent.atomic.AtomicBoolean; import static com.facebook.airlift.concurrent.Threads.daemonThreadsNamed; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.raptor.storage.organization.ShardOrganizerUtil.getOrganizationEligibleShards; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; import static java.util.concurrent.Executors.newScheduledThreadPool; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java index ce16e68141bb2..308c268437857 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java @@ -15,6 +15,9 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.airlift.stats.DistributionStat; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.ColumnInfo; import com.facebook.presto.raptor.metadata.ShardInfo; @@ -23,10 +26,7 @@ import com.facebook.presto.raptor.storage.StoragePageSink; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.weakref.jmx.Managed; import org.weakref.jmx.Nested; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardOrganizerUtil.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardOrganizerUtil.java index 70985b4986336..18dc098d83d0d 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardOrganizerUtil.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardOrganizerUtil.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.raptor.storage.organization; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.raptor.metadata.ShardMetadata; import com.facebook.presto.raptor.metadata.Table; import com.facebook.presto.raptor.metadata.TableColumn; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMultimap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/TemporalFunction.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/TemporalFunction.java index 6781793c03198..a32bc5696b169 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/TemporalFunction.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/TemporalFunction.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.raptor.storage.organization; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.storage.StorageManagerConfig; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import org.joda.time.DateTimeZone; import javax.inject.Inject; import java.time.Duration; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterables.getOnlyElement; import static java.lang.Math.toIntExact; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/Tuple.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/Tuple.java index 01274441cad04..da2f358d71e6b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/Tuple.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/Tuple.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.storage.organization; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java index 9144a1b049da3..2f7b376b53c1e 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorTableHandle; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.raptor.metadata.TableColumn; @@ -23,10 +25,8 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.base.VerifyException; import org.skife.jdbi.v2.IDBI; import org.skife.jdbi.v2.exceptions.DBIException; @@ -39,15 +39,15 @@ import java.util.Optional; import java.util.stream.Stream; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.maxColumn; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.minColumn; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.shardIndexTable; import static com.facebook.presto.raptor.util.DatabaseUtil.metadataError; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java index c354280b6b981..f8c2b1b6761a9 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java index 7e2734db32df4..44484732a3a48 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Joiner; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; @@ -31,13 +31,13 @@ import java.util.Map; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.raptor.util.DatabaseUtil.enableStreamingResults; import static com.facebook.presto.raptor.util.UuidUtil.uuidToBytes; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Strings.isNullOrEmpty; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ResultSetValues.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ResultSetValues.java index 48dfbe37f5762..cb304f84657b4 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ResultSetValues.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ResultSetValues.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.systemtables; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java index d595055d2f307..d64a2c5d336c2 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorTableMetadata; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -40,6 +40,11 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.raptor.RaptorColumnHandle.SHARD_UUID_COLUMN_TYPE; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_CORRUPT_METADATA; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.maxColumn; @@ -47,11 +52,6 @@ import static com.facebook.presto.raptor.metadata.DatabaseShardManager.shardIndexTable; import static com.facebook.presto.raptor.util.DatabaseUtil.metadataError; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkPositionIndex; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java index ae46c726216d6..b52cefc8e4337 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.ColumnMetadataRow; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.raptor.metadata.MetadataDao; @@ -26,12 +29,9 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.PeekingIterator; @@ -49,14 +49,14 @@ import java.util.SortedMap; import java.util.TreeMap; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_CORRUPT_METADATA; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.Iterators.peekingIterator; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java index dd4da4c8a3336..de2c1eedb66f9 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java @@ -36,15 +36,15 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.raptor.systemtables.TableMetadataSystemTable.getColumnIndex; import static com.facebook.presto.raptor.systemtables.TableMetadataSystemTable.getStringValue; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValues; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; import static io.airlift.slice.Slices.utf8Slice; import static java.util.stream.Collectors.toList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ValueBuffer.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ValueBuffer.java index 27d92ecba7f74..6accd40e15242 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ValueBuffer.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ValueBuffer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.systemtables; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.primitives.Primitives; import io.airlift.slice.Slice; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java index 3596a5c65bb1e..61dee45333016 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.raptor.util; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.storage.StoragePageSink; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.ArrayList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/Types.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/Types.java index 523062e52d844..0f1ede75a8798 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/Types.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/Types.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.util; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; public final class Types { diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java index aeca378def35e..3554fbecc422a 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import static com.facebook.presto.block.BlockAssertions.createIntsBlock; import static com.facebook.presto.block.BlockAssertions.createLongsBlock; import static com.facebook.presto.block.BlockAssertions.createStringsBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static org.testng.Assert.assertEquals; public class TestRaptorBucketFunction diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java index 4dfe3395ee5e5..e636be89809c3 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java @@ -15,6 +15,9 @@ import com.facebook.airlift.bootstrap.LifeCycleManager; import com.facebook.presto.PagesIndexPageSorter; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.plugin.base.security.AllowAllAccessControl; import com.facebook.presto.raptor.metadata.MetadataDao; @@ -35,9 +38,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.testing.TestingNodeManager; @@ -58,16 +58,16 @@ import java.util.Collection; import java.util.Optional; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.raptor.RaptorTableProperties.TABLE_SUPPORTS_DELTA_DELETE; import static com.facebook.presto.raptor.RaptorTableProperties.TEMPORAL_COLUMN_PROPERTY; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; import static com.facebook.presto.raptor.storage.TestOrcStorageManager.createOrcStorageManager; import static com.facebook.presto.spi.transaction.IsolationLevel.READ_COMMITTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.util.DateTimeUtils.parseDate; import static com.facebook.presto.util.DateTimeUtils.parseTimestampLiteral; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTest.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTest.java index 7b975b263ee7b..c49f476a60794 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTest.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/integration/TestRaptorIntegrationSmokeTest.java @@ -14,7 +14,7 @@ package com.facebook.presto.raptor.integration; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.tests.AbstractTestIntegrationSmokeTest; @@ -39,13 +39,13 @@ import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.airlift.testing.Assertions.assertLessThan; import static com.facebook.presto.SystemSessionProperties.COLOCATED_JOIN; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.raptor.RaptorColumnHandle.SHARD_UUID_COLUMN_TYPE; import static com.facebook.presto.raptor.RaptorQueryRunner.createRaptorQueryRunner; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static com.google.common.collect.Iterables.getOnlyElement; import static java.lang.String.format; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java index beb12e3bce725..e4dd5393c5353 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java @@ -15,6 +15,7 @@ import com.facebook.airlift.testing.TestingTicker; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.raptor.NodeSupplier; import com.facebook.presto.raptor.RaptorColumnHandle; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.predicate.Range; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Ticker; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; @@ -65,6 +65,13 @@ import java.util.function.Function; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_EXTERNAL_BATCH_ALREADY_EXISTS; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.shardIndexTable; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; @@ -75,13 +82,6 @@ import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; import static com.facebook.presto.spi.predicate.Range.lessThan; import static com.facebook.presto.spi.predicate.Range.range; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.google.common.base.Strings.repeat; import static com.google.common.base.Ticker.systemTicker; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorMetadata.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorMetadata.java index 8dfc35414a960..52b324119b45e 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorMetadata.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.type.RowType; import com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder; import com.facebook.presto.raptor.NodeSupplier; import com.facebook.presto.raptor.RaptorColumnHandle; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; -import com.facebook.presto.spi.type.RowType; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.testing.TestingNodeManager; import com.facebook.presto.type.TypeRegistry; @@ -60,6 +60,9 @@ import static com.facebook.airlift.testing.Assertions.assertEqualsIgnoreOrder; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.raptor.RaptorTableProperties.BUCKETED_ON_PROPERTY; import static com.facebook.presto.raptor.RaptorTableProperties.BUCKET_COUNT_PROPERTY; @@ -72,9 +75,6 @@ import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.TRANSACTION_CONFLICT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.Ticker.systemTicker; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorSplitManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorSplitManager.java index f75768c0666c3..8255b7d7a92e0 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorSplitManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestRaptorSplitManager.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.metadata; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder; import com.facebook.presto.raptor.NodeSupplier; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingContext; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.BigintType; import com.facebook.presto.testing.TestingNodeManager; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -57,13 +57,13 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.raptor.RaptorTableProperties.TABLE_SUPPORTS_DELTA_DELETE; import static com.facebook.presto.raptor.metadata.DatabaseShardManager.shardIndexTable; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.shardInfo; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.base.Ticker.systemTicker; import static com.google.common.collect.Iterables.getOnlyElement; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java index acf132d6a2fb7..fe333dd180c09 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java @@ -22,6 +22,8 @@ import io.airlift.slice.Slice; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.raptor.RaptorColumnHandle.bucketNumberColumnHandle; import static com.facebook.presto.raptor.RaptorColumnHandle.shardUuidColumnHandle; import static com.facebook.presto.raptor.util.UuidUtil.uuidStringToBytes; @@ -30,8 +32,6 @@ import static com.facebook.presto.spi.predicate.Range.equal; import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static java.sql.JDBCType.VARBINARY; import static java.util.UUID.randomUUID; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/OrcTestingUtil.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/OrcTestingUtil.java index 043dbb8c27496..9a49b3edb8f16 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/OrcTestingUtil.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/OrcTestingUtil.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.storage; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; @@ -29,7 +30,6 @@ import com.facebook.presto.orc.StorageStripeMetadataSource; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.raptor.RaptorOrcAggregatedMemoryContext; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import io.airlift.units.DataSize; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestBucketBalancer.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestBucketBalancer.java index 697103b048c6d..19f9826c36b91 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestBucketBalancer.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestBucketBalancer.java @@ -44,10 +44,10 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; import static com.facebook.airlift.testing.Assertions.assertLessThanOrEqual; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.raptor.metadata.Distribution.serializeColumnTypes; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static java.util.concurrent.TimeUnit.DAYS; import static org.testng.Assert.assertEquals; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java index 17cba039dc6b6..4f8aea58b4b9c 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java @@ -15,6 +15,14 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; @@ -29,15 +37,7 @@ import com.facebook.presto.raptor.metadata.TableColumn; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -68,6 +68,12 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.airlift.testing.Assertions.assertBetweenInclusive; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.metadata.CompressionKind.ZSTD; @@ -75,12 +81,6 @@ import static com.facebook.presto.raptor.storage.OrcTestingUtil.createReader; import static com.facebook.presto.raptor.storage.OrcTestingUtil.fileOrcDataSource; import static com.facebook.presto.raptor.storage.TestOrcStorageManager.createOrcStorageManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlocksEqual; import static com.facebook.presto.tests.StructuralTestUtil.mapBlockOf; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java index 115cc1059c27a..c6ec90756c403 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java @@ -13,6 +13,12 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.orc.StorageStripeMetadataSource; @@ -36,14 +42,8 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingNodeManager; import com.facebook.presto.type.TypeRegistry; @@ -84,6 +84,15 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; import static com.facebook.presto.orc.metadata.CompressionKind.SNAPPY; import static com.facebook.presto.raptor.filesystem.FileSystemUtil.xxhash64; @@ -92,15 +101,6 @@ import static com.facebook.presto.raptor.storage.OrcTestingUtil.createReader; import static com.facebook.presto.raptor.storage.OrcTestingUtil.octets; import static com.facebook.presto.raptor.storage.StorageManagerConfig.OrcOptimizedWriterStage.ENABLED_AND_VALIDATED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.MaterializedResult.materializeSourceDataStream; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java index 899469ef3d4a9..4947c84ee6565 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java @@ -47,9 +47,9 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.io.Files.createTempDir; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardWriter.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardWriter.java index cfdcde5c34ffb..c1e0212e35e26 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardWriter.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardWriter.java @@ -16,21 +16,21 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlTime; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.orc.OrcBatchRecordReader; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlTime; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -47,20 +47,20 @@ import java.util.List; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.raptor.storage.OrcTestingUtil.createFileWriter; import static com.facebook.presto.raptor.storage.OrcTestingUtil.createReader; import static com.facebook.presto.raptor.storage.OrcTestingUtil.fileOrcDataSource; import static com.facebook.presto.raptor.storage.OrcTestingUtil.octets; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestStorageManagerConfig.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestStorageManagerConfig.java index a71b9de7e9c87..8d079333d31cd 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestStorageManagerConfig.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestStorageManagerConfig.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.storage; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; import io.airlift.units.Duration; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestCompactionSetCreator.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestCompactionSetCreator.java index 66a6312f19b4c..1a01bf987f52e 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestCompactionSetCreator.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestCompactionSetCreator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.storage.organization; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.Table; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -31,8 +31,8 @@ import java.util.Set; import java.util.UUID; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.google.common.collect.Iterables.getOnlyElement; import static org.joda.time.DateTimeZone.UTC; import static org.testng.Assert.assertEquals; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java index dd983ad40ef05..4da41cd99e5f7 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java @@ -15,6 +15,9 @@ import com.facebook.presto.PagesIndexPageSorter; import com.facebook.presto.SequencePageBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.ColumnInfo; @@ -25,10 +28,7 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.google.common.collect.ImmutableList; @@ -54,14 +54,14 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.RowPagesBuilder.rowPagesBuilder; +import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_FIRST; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; import static com.facebook.presto.raptor.storage.TestOrcStorageManager.createOrcStorageManager; -import static com.facebook.presto.spi.block.SortOrder.ASC_NULLS_FIRST; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.MaterializedResult.materializeSourceDataStream; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.facebook.presto.testing.assertions.Assert.assertEquals; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizationManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizationManager.java index 202c7eb341593..a0648da9be498 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizationManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizationManager.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor.storage.organization; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.raptor.metadata.Table; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import io.airlift.units.Duration; @@ -33,15 +33,15 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; import static com.facebook.presto.raptor.storage.organization.ShardOrganizationManager.createOrganizationSets; import static com.facebook.presto.raptor.storage.organization.TestCompactionSetCreator.extractIndexes; import static com.facebook.presto.raptor.storage.organization.TestShardOrganizer.createShardOrganizer; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.google.common.collect.Iterables.getOnlyElement; import static io.airlift.units.Duration.nanosSince; import static java.util.concurrent.TimeUnit.MILLISECONDS; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizerUtil.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizerUtil.java index daa46852cd3ee..65742bdfe101d 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizerUtil.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardOrganizerUtil.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor.storage.organization; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorMetadata; import com.facebook.presto.raptor.metadata.ColumnInfo; import com.facebook.presto.raptor.metadata.ColumnStats; @@ -24,7 +25,6 @@ import com.facebook.presto.raptor.metadata.TableColumn; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -44,16 +44,16 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.shardInfo; import static com.facebook.presto.raptor.storage.organization.ShardOrganizerUtil.getOrganizationEligibleShards; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.io.MoreFiles.deleteRecursively; import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardRange.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardRange.java index 664ce8ab429a9..7e9ba27f3cafd 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardRange.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardRange.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.raptor.storage.organization; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTemporalFunction.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTemporalFunction.java index 60ce5226b37fa..76ebbb1bfc67d 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTemporalFunction.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTemporalFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.storage.organization; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.testng.annotations.Test; @@ -22,8 +22,8 @@ import java.time.Duration; import java.util.TimeZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static org.joda.time.DateTimeZone.UTC; import static org.testng.Assert.assertEquals; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTuple.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTuple.java index 725bdeba97a69..5b0bc84b61dd6 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTuple.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestTuple.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.storage.organization; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; @@ -21,13 +21,13 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThan; import static com.facebook.airlift.testing.Assertions.assertLessThan; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static org.testng.Assert.assertEquals; public class TestTuple diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java index b0efee13f09a8..dc7eb8522f941 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorMetadata; import com.facebook.presto.raptor.metadata.ColumnInfo; import com.facebook.presto.raptor.metadata.MetadataDao; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.predicate.ValueSet; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -48,6 +48,9 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.raptor.RaptorTableProperties.TABLE_SUPPORTS_DELTA_DELETE; import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; @@ -55,9 +58,6 @@ import static com.facebook.presto.raptor.systemtables.ShardMetadataRecordCursor.SHARD_METADATA; import static com.facebook.presto.spi.predicate.Range.greaterThan; import static com.facebook.presto.spi.predicate.Range.lessThanOrEqual; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.MaterializedResult.DEFAULT_PRECISION; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-rcfile/pom.xml b/presto-rcfile/pom.xml index 1c554c9c43a91..4f36e244f4d9f 100644 --- a/presto-rcfile/pom.xml +++ b/presto-rcfile/pom.xml @@ -48,6 +48,11 @@ presto-spi + + com.facebook.presto + presto-common + + org.openjdk.jol jol-core diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/ColumnEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/ColumnEncoding.java index 52c7425442e24..454e8d53f3ced 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/ColumnEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/ColumnEncoding.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.rcfile; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import io.airlift.slice.SliceOutput; public interface ColumnEncoding diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileDecoderUtils.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileDecoderUtils.java index 3074ac13706b7..7d6d11bfd3416 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileDecoderUtils.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileDecoderUtils.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileEncoding.java index ebad8b4f2a9ce..a242e6dd8c2bb 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileEncoding.java @@ -13,28 +13,28 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; import static java.util.stream.Collectors.toList; public interface RcFileEncoding diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java index f20637bbf20bd..f9672d4d09944 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksum; import com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksumBuilder; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableMap; import io.airlift.slice.BasicSliceInput; import io.airlift.slice.ChunkedSliceInput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java index 80aff15ad5363..8df8058097366 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java index 21364f9ae6341..78c6cfd050b1d 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileCompressor.CompressedSliceOutput; import com.facebook.presto.rcfile.RcFileWriteValidation.RcFileWriteValidationBuilder; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.io.Closer; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryColumnEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryColumnEncoding.java index 146ff7685df9d..13cd96edcee98 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryColumnEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryColumnEncoding.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.rcfile.ColumnEncoding; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryEncoding.java index bb69cc901a87a..666658ac90b0b 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryRcFileEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryRcFileEncoding.java index ddced39274a08..4d04a700f8917 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryRcFileEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BinaryRcFileEncoding.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnEncoding; import com.facebook.presto.rcfile.RcFileEncoding; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.stream.Collectors; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BlockEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BlockEncoding.java index adec0e42b0b30..2636a7c64d1ba 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BlockEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BlockEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BooleanEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BooleanEncoding.java index 637ec984f26e2..95a1431d26d60 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BooleanEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/BooleanEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ByteEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ByteEncoding.java index 2d99cf557782c..abe29a35ba491 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ByteEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ByteEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DateEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DateEncoding.java index 01e542f3abe10..9fb30768f1a06 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DateEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DateEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DecimalEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DecimalEncoding.java index 57302c2327f7d..11584abfd2598 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DecimalEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DecimalEncoding.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; import java.math.BigInteger; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.Decimals.rescale; import static com.facebook.presto.rcfile.RcFileDecoderUtils.decodeVIntSize; import static com.facebook.presto.rcfile.RcFileDecoderUtils.readVInt; import static com.facebook.presto.rcfile.RcFileDecoderUtils.writeVInt; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.Decimals.rescale; import static com.google.common.base.Preconditions.checkState; import static java.lang.Math.toIntExact; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DoubleEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DoubleEncoding.java index a1ceaf42e7a50..726e571899057 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DoubleEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/DoubleEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/FloatEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/FloatEncoding.java index 8ac7ade2fe149..08a62d7a292ac 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/FloatEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/FloatEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ListEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ListEncoding.java index 65916461599b1..ce03204ec7f07 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ListEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ListEncoding.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile.binary; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/LongEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/LongEncoding.java index 18c9d7a87ddb0..18a1c42ad72bb 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/LongEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/LongEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/MapEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/MapEncoding.java index 74dbce590ac8e..c68ce2ae1e365 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/MapEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/MapEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ShortEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ShortEncoding.java index 74716d423dbd1..22519ad314f7c 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ShortEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/ShortEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StringEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StringEncoding.java index 905708cd321b0..0d3a021977c98 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StringEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StringEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StructEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StructEncoding.java index 58f61784dc081..aba46308bc95f 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StructEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/StructEncoding.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile.binary; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/TimestampEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/TimestampEncoding.java index 18d163f9b6cac..fb1cc96f139de 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/TimestampEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/binary/TimestampEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.binary; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BinaryEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BinaryEncoding.java index 076661e14fc1c..6cf8005b3b7be 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BinaryEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BinaryEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BlockEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BlockEncoding.java index f26a2fb979db4..3e73ec76e1605 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BlockEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BlockEncoding.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BooleanEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BooleanEncoding.java index 78812d5e2789a..772c61f144548 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BooleanEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/BooleanEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DateEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DateEncoding.java index 13eff032c5f06..199aab643bc06 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DateEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DateEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import org.joda.time.format.DateTimeFormatter; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DecimalEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DecimalEncoding.java index 34505f1f271f7..f86bf892d8464 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DecimalEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DecimalEncoding.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import java.math.BigDecimal; -import static com.facebook.presto.spi.type.Decimals.encodeUnscaledValue; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.Decimals.encodeUnscaledValue; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DoubleEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DoubleEncoding.java index 3ea37fd2a12e6..3de92ae3c769f 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DoubleEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/DoubleEncoding.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/FloatEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/FloatEncoding.java index ead80d7f56181..5ef7ff5457ffb 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/FloatEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/FloatEncoding.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/ListEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/ListEncoding.java index f565503546b24..4b4b21f3364c7 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/ListEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/ListEncoding.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/LongEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/LongEncoding.java index 4d178dbb19bad..9d9655425b599 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/LongEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/LongEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/MapEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/MapEncoding.java index 6aca98854f43d..3c76e90499685 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/MapEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/MapEncoding.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileCorruptionException; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StringEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StringEncoding.java index 7cac8367b2e76..cdc87d2c29e53 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StringEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StringEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import io.airlift.slice.Slices; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StructEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StructEncoding.java index 354763030e67e..9735c77af3d96 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StructEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/StructEncoding.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextColumnEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextColumnEncoding.java index 2c3a085e53d4d..cb88ffaf62144 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextColumnEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextColumnEncoding.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.rcfile.ColumnEncoding; import com.facebook.presto.rcfile.RcFileCorruptionException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextRcFileEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextRcFileEncoding.java index 42cdfadf85ed5..6ccccd5d2042f 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextRcFileEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TextRcFileEncoding.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnEncoding; import com.facebook.presto.rcfile.RcFileEncoding; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.joda.time.DateTimeZone; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TimestampEncoding.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TimestampEncoding.java index 80d31a64698b3..fed5aa8a9ef9e 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TimestampEncoding.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/text/TimestampEncoding.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile.text; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.ColumnData; import com.facebook.presto.rcfile.EncodeOutput; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.SliceOutput; import org.joda.time.DateTimeZone; diff --git a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/AbstractTestRcFileReader.java b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/AbstractTestRcFileReader.java index 783ed40b64dd2..ddbc4af006323 100644 --- a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/AbstractTestRcFileReader.java +++ b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/AbstractTestRcFileReader.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlVarbinary; import com.google.common.collect.ContiguousSet; import com.google.common.collect.DiscreteDomain; import com.google.common.collect.ImmutableList; @@ -29,18 +29,18 @@ import java.util.ArrayList; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.rcfile.RcFileTester.Format.BINARY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.collect.Iterables.cycle; diff --git a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java index 158fc10116abd..c419483c51632 100644 --- a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java +++ b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java @@ -14,27 +14,27 @@ package com.facebook.presto.rcfile; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.SqlDecimal; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hadoop.HadoopNative; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.rcfile.binary.BinaryRcFileEncoding; import com.facebook.presto.rcfile.text.TextRcFileEncoding; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.SqlDecimal; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.AbstractIterator; @@ -122,6 +122,22 @@ import java.util.Set; import java.util.concurrent.ThreadLocalRandom; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.rescale; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.rcfile.RcFileDecoderUtils.findFirstSyncPosition; import static com.facebook.presto.rcfile.RcFileTester.Compression.BZIP2; import static com.facebook.presto.rcfile.RcFileTester.Compression.LZ4; @@ -130,22 +146,6 @@ import static com.facebook.presto.rcfile.RcFileTester.Compression.ZLIB; import static com.facebook.presto.rcfile.RcFileWriter.PRESTO_RCFILE_WRITER_VERSION; import static com.facebook.presto.rcfile.RcFileWriter.PRESTO_RCFILE_WRITER_VERSION_METADATA_KEY; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.rescale; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.ROW; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static com.google.common.base.Functions.constant; import static com.google.common.collect.Iterables.transform; diff --git a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/TestRcFileReaderManual.java b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/TestRcFileReaderManual.java index 7634862062b51..981b93a088dca 100644 --- a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/TestRcFileReaderManual.java +++ b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/TestRcFileReaderManual.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.block.Block; import com.facebook.presto.rcfile.binary.BinaryRcFileEncoding; -import com.facebook.presto.spi.block.Block; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.DynamicSliceOutput; @@ -26,7 +26,7 @@ import java.io.IOException; import java.util.List; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static io.airlift.units.DataSize.Unit.MEGABYTE; diff --git a/presto-record-decoder/pom.xml b/presto-record-decoder/pom.xml index 92a4a5c752270..13a4964c451ca 100644 --- a/presto-record-decoder/pom.xml +++ b/presto-record-decoder/pom.xml @@ -76,6 +76,11 @@ presto-spi + + com.facebook.presto + presto-common + + io.airlift slice diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/DecoderColumnHandle.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/DecoderColumnHandle.java index 2e2327bb92c52..6564f486a1e76 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/DecoderColumnHandle.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/DecoderColumnHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.decoder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.type.Type; // Connectors that have rows that can be decoded into // columns using com.facebook.presto.decoder diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/FieldValueProvider.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/FieldValueProvider.java index 9c8e3b3f58bfb..84fb177f6564c 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/FieldValueProvider.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/FieldValueProvider.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.decoder; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; import io.airlift.slice.Slice; /** diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/avro/AvroColumnDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/avro/AvroColumnDecoder.java index bf80889969489..18953e5394523 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/avro/AvroColumnDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/avro/AvroColumnDecoder.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.decoder.avro; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -35,17 +35,17 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.StandardTypes.VARBINARY; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.StandardTypes.VARBINARY; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/csv/CsvColumnDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/csv/CsvColumnDecoder.java index 75878e8776841..b68d9edba0590 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/csv/CsvColumnDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/csv/CsvColumnDecoder.java @@ -13,24 +13,24 @@ */ package com.facebook.presto.decoder.csv; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.FieldValueProviders.nullValueProvider; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/AbstractDateTimeJsonValueProvider.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/AbstractDateTimeJsonValueProvider.java index 1f61ecfe65f44..9778beadb8392 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/AbstractDateTimeJsonValueProvider.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/AbstractDateTimeJsonValueProvider.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.lang.String.format; public abstract class AbstractDateTimeJsonValueProvider diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/CustomDateTimeJsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/CustomDateTimeJsonFieldDecoder.java index 9f64ab4c95522..5e4fd6c977cd0 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/CustomDateTimeJsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/CustomDateTimeJsonFieldDecoder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableSet; import org.joda.time.format.DateTimeFormat; @@ -25,14 +25,14 @@ import java.util.Locale; import java.util.Set; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.json.JsonRowDecoderFactory.throwUnsupportedColumnType; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_USER_ERROR; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/DefaultJsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/DefaultJsonFieldDecoder.java index ee0e3f28cc559..f627377e6256a 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/DefaultJsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/DefaultJsonFieldDecoder.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Double.parseDouble; import static java.lang.Long.parseLong; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/ISO8601JsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/ISO8601JsonFieldDecoder.java index d806d76d4d041..6710fd063fa8f 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/ISO8601JsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/ISO8601JsonFieldDecoder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableSet; @@ -26,15 +26,15 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKey; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.json.JsonRowDecoderFactory.throwUnsupportedColumnType; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKey; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.lang.String.format; import static java.time.format.DateTimeFormatter.ISO_DATE; import static java.time.format.DateTimeFormatter.ISO_DATE_TIME; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/MillisecondsSinceEpochJsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/MillisecondsSinceEpochJsonFieldDecoder.java index 56b4809499d50..9a7ea9e3b887a 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/MillisecondsSinceEpochJsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/MillisecondsSinceEpochJsonFieldDecoder.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableSet; import java.util.Set; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.json.JsonRowDecoderFactory.throwUnsupportedColumnType; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.lang.Long.parseLong; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/RFC2822JsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/RFC2822JsonFieldDecoder.java index 4aced3a29f74e..c60aa0a95b4e3 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/RFC2822JsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/RFC2822JsonFieldDecoder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableSet; import org.joda.time.format.DateTimeFormat; @@ -25,13 +25,13 @@ import java.util.Locale; import java.util.Set; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.json.JsonRowDecoderFactory.throwUnsupportedColumnType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/SecondsSinceEpochJsonFieldDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/SecondsSinceEpochJsonFieldDecoder.java index 37a3b5644ffac..59b4ae93df232 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/SecondsSinceEpochJsonFieldDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/json/SecondsSinceEpochJsonFieldDecoder.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.decoder.json; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableSet; import java.util.Set; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; import static com.facebook.presto.decoder.json.JsonRowDecoderFactory.throwUnsupportedColumnType; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.lang.Long.parseLong; import static java.lang.Math.multiplyExact; import static java.lang.String.format; diff --git a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/raw/RawColumnDecoder.java b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/raw/RawColumnDecoder.java index a8c436d11895b..57620777a7b2c 100644 --- a/presto-record-decoder/src/main/java/com/facebook/presto/decoder/raw/RawColumnDecoder.java +++ b/presto-record-decoder/src/main/java/com/facebook/presto/decoder/raw/RawColumnDecoder.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.decoder.raw; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.Varchars; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.StandardErrorCode; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.Varchars; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; @@ -32,14 +32,14 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.decoder.DecoderErrorCode.DECODER_CONVERSION_NOT_SUPPORTED; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.Integer.parseInt; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/DecoderTestColumnHandle.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/DecoderTestColumnHandle.java index dbc8214788af7..f53b68f380fa1 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/DecoderTestColumnHandle.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/DecoderTestColumnHandle.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.decoder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/avro/TestAvroDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/avro/TestAvroDecoder.java index c08064ba50a88..28bbe118c4c35 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/avro/TestAvroDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/avro/TestAvroDecoder.java @@ -13,23 +13,23 @@ */ package com.facebook.presto.decoder.avro; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.DecoderTestColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -52,16 +52,16 @@ import java.util.Set; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkIsNull; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkValue; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.TestingEnvironment.TYPE_MANAGER; import static java.nio.charset.StandardCharsets.UTF_8; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/csv/TestCsvDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/csv/TestCsvDecoder.java index f8f6b92ba3a66..7b70349263b37 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/csv/TestCsvDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/csv/TestCsvDecoder.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.decoder.csv; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.DecoderTestColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.google.common.collect.ImmutableSet; import org.assertj.core.api.ThrowableAssert; import org.testng.annotations.Test; @@ -36,10 +36,10 @@ import java.util.Map; import java.util.Set; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkIsNull; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkValue; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.testng.Assert.assertEquals; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/JsonFieldDecoderTester.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/JsonFieldDecoderTester.java index 4f587ef98d982..44f87582baa1d 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/JsonFieldDecoderTester.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/JsonFieldDecoderTester.java @@ -14,12 +14,12 @@ package com.facebook.presto.decoder.json; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.DecoderTestColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestCustomDateTimeJsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestCustomDateTimeJsonFieldDecoder.java index 5b05d4b0299de..67686b018bf7a 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestCustomDateTimeJsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestCustomDateTimeJsonFieldDecoder.java @@ -19,13 +19,13 @@ import com.google.common.collect.ImmutableSet; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestDefaultJsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestDefaultJsonFieldDecoder.java index 85e0e664d68d1..2767d5e0a4f0f 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestDefaultJsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestDefaultJsonFieldDecoder.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.decoder.json; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; import java.math.BigInteger; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TinyintType.TINYINT; import static java.util.Arrays.asList; public class TestDefaultJsonFieldDecoder diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestISO8601JsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestISO8601JsonFieldDecoder.java index f5747273a090f..2ddb94e8d0c0b 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestISO8601JsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestISO8601JsonFieldDecoder.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.decoder.json; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Arrays.asList; public class TestISO8601JsonFieldDecoder diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestJsonDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestJsonDecoder.java index a75f72ee40b0d..a2b9778b061c9 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestJsonDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestJsonDecoder.java @@ -14,12 +14,12 @@ package com.facebook.presto.decoder.json; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.DecoderTestColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableSet; import com.google.common.io.ByteStreams; import org.assertj.core.api.ThrowableAssert.ThrowingCallable; @@ -30,24 +30,24 @@ import java.util.Optional; import java.util.Set; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkIsNull; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkValue; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static java.util.Arrays.asList; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestMillisecondsSinceEpochJsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestMillisecondsSinceEpochJsonFieldDecoder.java index e859667a69b2e..dc21a5a14047f 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestMillisecondsSinceEpochJsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestMillisecondsSinceEpochJsonFieldDecoder.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.decoder.json; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Arrays.asList; public class TestMillisecondsSinceEpochJsonFieldDecoder diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestRFC2822JsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestRFC2822JsonFieldDecoder.java index fffdf4f0ac1c5..11c5ab43a1852 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestRFC2822JsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestRFC2822JsonFieldDecoder.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.decoder.json; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Arrays.asList; public class TestRFC2822JsonFieldDecoder diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestSecondsSinceEpochJsonFieldDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestSecondsSinceEpochJsonFieldDecoder.java index 8f1a73a5ff45a..e6924943b4776 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestSecondsSinceEpochJsonFieldDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/json/TestSecondsSinceEpochJsonFieldDecoder.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.decoder.json; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import org.testng.annotations.Test; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.Arrays.asList; public class TestSecondsSinceEpochJsonFieldDecoder diff --git a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/raw/TestRawDecoder.java b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/raw/TestRawDecoder.java index 40ebcaf2cef16..b38458fb575b2 100644 --- a/presto-record-decoder/src/test/java/com/facebook/presto/decoder/raw/TestRawDecoder.java +++ b/presto-record-decoder/src/test/java/com/facebook/presto/decoder/raw/TestRawDecoder.java @@ -13,21 +13,21 @@ */ package com.facebook.presto.decoder.raw; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.DecoderTestColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.google.common.collect.ImmutableSet; import org.assertj.core.api.ThrowableAssert; import org.testng.annotations.Test; @@ -37,11 +37,11 @@ import java.util.Map; import java.util.Set; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkIsNull; import static com.facebook.presto.decoder.util.DecoderTestUtil.checkValue; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static java.util.Collections.emptyMap; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.testng.Assert.assertEquals; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisColumnHandle.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisColumnHandle.java index 1a47b5327ba04..697862edeb3bb 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisColumnHandle.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.redis; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorFactory.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorFactory.java index 4f36678504038..ce1a30b08a5b3 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorFactory.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorFactory.java @@ -15,13 +15,13 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.airlift.json.JsonModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import com.google.inject.Scopes; import com.google.inject.TypeLiteral; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorModule.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorModule.java index 96c1aec36dd34..14c41477ccf15 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorModule.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisConnectorModule.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.redis; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; @@ -26,7 +26,7 @@ import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.json.JsonBinder.jsonBinder; import static com.facebook.airlift.json.JsonCodecBinder.jsonCodecBinder; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisInternalFieldDescription.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisInternalFieldDescription.java index 122e25b460132..8fd8d67271493 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisInternalFieldDescription.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisInternalFieldDescription.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.redis; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.Type; import java.util.Map; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.isNullOrEmpty; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordCursor.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordCursor.java index deb78451976c8..2a664bd4cdd65 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordCursor.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordCursor.java @@ -14,12 +14,12 @@ package com.facebook.presto.redis; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordSet.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordSet.java index 66280c97338b9..3202854b6b708 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordSet.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisRecordSet.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.redis; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.RowDecoder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/RedisTableFieldDescription.java b/presto-redis/src/main/java/com/facebook/presto/redis/RedisTableFieldDescription.java index 87b474ad0160a..3ce5e607474f5 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/RedisTableFieldDescription.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/RedisTableFieldDescription.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.redis; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-redis/src/main/java/com/facebook/presto/redis/decoder/hash/ISO8601HashRedisFieldDecoder.java b/presto-redis/src/main/java/com/facebook/presto/redis/decoder/hash/ISO8601HashRedisFieldDecoder.java index 868108036a462..88e3cb8891cc1 100644 --- a/presto-redis/src/main/java/com/facebook/presto/redis/decoder/hash/ISO8601HashRedisFieldDecoder.java +++ b/presto-redis/src/main/java/com/facebook/presto/redis/decoder/hash/ISO8601HashRedisFieldDecoder.java @@ -13,20 +13,20 @@ */ package com.facebook.presto.redis.decoder.hash; +import com.facebook.presto.common.type.Type; import com.facebook.presto.decoder.DecoderColumnHandle; import com.facebook.presto.decoder.FieldValueProvider; -import com.facebook.presto.spi.type.Type; import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.ISODateTimeFormat; import java.util.Locale; -import static com.facebook.presto.spi.type.DateTimeEncoding.packDateTimeWithZone; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.DateTimeEncoding.packDateTimeWithZone; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static java.util.concurrent.TimeUnit.MILLISECONDS; class ISO8601HashRedisFieldDecoder diff --git a/presto-redis/src/test/java/com/facebook/presto/redis/TestMinimalFunctionality.java b/presto-redis/src/test/java/com/facebook/presto/redis/TestMinimalFunctionality.java index 8f6058e0be7f9..f315fcd143dc2 100644 --- a/presto-redis/src/test/java/com/facebook/presto/redis/TestMinimalFunctionality.java +++ b/presto-redis/src/test/java/com/facebook/presto/redis/TestMinimalFunctionality.java @@ -14,13 +14,13 @@ package com.facebook.presto.redis; import com.facebook.presto.Session; +import com.facebook.presto.common.type.BigintType; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.redis.util.EmbeddedRedis; import com.facebook.presto.redis.util.JsonEncoder; import com.facebook.presto.security.AllowAllAccessControl; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.type.BigintType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.tests.StandaloneQueryRunner; import com.google.common.collect.ImmutableMap; diff --git a/presto-redis/src/test/java/com/facebook/presto/redis/util/CodecSupplier.java b/presto-redis/src/test/java/com/facebook/presto/redis/util/CodecSupplier.java index e29f989e74080..a3b565a96fc54 100644 --- a/presto-redis/src/test/java/com/facebook/presto/redis/util/CodecSupplier.java +++ b/presto-redis/src/test/java/com/facebook/presto/redis/util/CodecSupplier.java @@ -16,15 +16,15 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.json.JsonCodecFactory; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.common.collect.ImmutableMap; import java.util.function.Supplier; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; public final class CodecSupplier implements Supplier> diff --git a/presto-redis/src/test/java/com/facebook/presto/redis/util/RedisLoader.java b/presto-redis/src/test/java/com/facebook/presto/redis/util/RedisLoader.java index d58f5c3da92e1..b33f6e14fcf7f 100644 --- a/presto-redis/src/test/java/com/facebook/presto/redis/util/RedisLoader.java +++ b/presto-redis/src/test/java/com/facebook/presto/redis/util/RedisLoader.java @@ -17,11 +17,11 @@ import com.facebook.presto.client.Column; import com.facebook.presto.client.QueryData; import com.facebook.presto.client.QueryStatusInfo; +import com.facebook.presto.common.type.TimeZoneKey; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.Varchars; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.PrestoWarning; -import com.facebook.presto.spi.type.TimeZoneKey; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.Varchars; import com.facebook.presto.tests.AbstractTestingPrestoClient; import com.facebook.presto.tests.ResultsSession; import com.google.common.collect.ImmutableMap; @@ -36,16 +36,16 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; import static com.facebook.presto.util.DateTimeUtils.parseTimeLiteral; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithTimeZone; import static com.facebook.presto.util.DateTimeUtils.parseTimestampWithoutTimeZone; diff --git a/presto-spark-base/pom.xml b/presto-spark-base/pom.xml index 4e1145e45cfc4..03739e126ce24 100644 --- a/presto-spark-base/pom.xml +++ b/presto-spark-base/pom.xml @@ -41,6 +41,11 @@ + + com.facebook.presto + presto-common + + com.facebook.presto presto-spi diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkModule.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkModule.java index a3138aa721d62..e70088358ea71 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkModule.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkModule.java @@ -22,6 +22,11 @@ import com.facebook.presto.block.BlockEncodingManager; import com.facebook.presto.block.BlockJsonSerde; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.ConnectorManager; import com.facebook.presto.cost.CostCalculator; import com.facebook.presto.cost.CostCalculatorUsingExchanges; @@ -83,16 +88,11 @@ import com.facebook.presto.spark.planner.PrestoSparkSplitEnumerator; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.memory.ClusterMemoryPoolManager; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.spiller.FileSingleStreamSpillerFactory; import com.facebook.presto.spiller.GenericPartitioningSpillerFactory; import com.facebook.presto.spiller.GenericSpillerFactory; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkQueryExecutionFactory.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkQueryExecutionFactory.java index b75fe18c1bc11..c91c2abc5b75e 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkQueryExecutionFactory.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/PrestoSparkQueryExecutionFactory.java @@ -16,6 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; import com.facebook.presto.Session; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.event.QueryMonitor; import com.facebook.presto.execution.QueryIdGenerator; import com.facebook.presto.execution.QueryInfo; @@ -43,8 +45,6 @@ import com.facebook.presto.spark.planner.PrestoSparkSplitEnumerator; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.QueryId; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.PlanFragment; import com.facebook.presto.sql.planner.SubPlan; import com.facebook.presto.sql.planner.plan.RemoteSourceNode; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java index 3253e54d2b04c..8dc5053e179c3 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.spark.execution; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.RunLengthEncodedBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; @@ -22,11 +25,8 @@ import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.spark.classloader_interface.PrestoSparkRow; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.RunLengthEncodedBlock; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.ConstantExpression; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.OutputPartitioning; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceFactory.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceFactory.java index 00c2c7f450490..b79867110b75c 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceFactory.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceFactory.java @@ -14,12 +14,12 @@ package com.facebook.presto.spark.execution; import com.facebook.presto.Session; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.spark.classloader_interface.PrestoSparkRow; import com.facebook.presto.spark.execution.PrestoSparkRemoteSourceOperator.SparkRemoteSourceOperatorFactory; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.RemoteSourceFactory; import com.google.common.collect.ImmutableMap; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java index f5ff4e25df852..8f23718b1e388 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spark.execution; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Split; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.OperatorContext; @@ -22,9 +24,7 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.UpdatablePageSource; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.BasicSliceInput; import io.airlift.slice.SliceInput; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/node/PrestoSparkNodePartitioningManager.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/node/PrestoSparkNodePartitioningManager.java index a58a275a791fb..75187339078ed 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/node/PrestoSparkNodePartitioningManager.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/node/PrestoSparkNodePartitioningManager.java @@ -14,10 +14,10 @@ package com.facebook.presto.spark.node; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.scheduler.BucketNodeMap; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.spi.connector.ConnectorPartitionHandle; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.planner.NodePartitionMap; import com.facebook.presto.sql.planner.NodePartitioningManager; import com.facebook.presto.sql.planner.PartitioningHandle; diff --git a/presto-spi/pom.xml b/presto-spi/pom.xml index 045d95f60264d..e9c6d184a3952 100644 --- a/presto-spi/pom.xml +++ b/presto-spi/pom.xml @@ -49,6 +49,13 @@ + + com.facebook.presto + presto-common + test-jar + test + + org.testng testng diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ColumnMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/ColumnMetadata.java index 113c361141061..2f8a2addc8bcf 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ColumnMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ColumnMetadata.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.LinkedHashMap; import java.util.Map; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorSession.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorSession.java index c5d9913a1d7ac..2b430ace8fadb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorSession.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorSession.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.security.ConnectorIdentity; import java.util.Locale; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/InMemoryRecordSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/InMemoryRecordSet.java index f0806c4735631..07f1f28c9cf3f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/InMemoryRecordSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/InMemoryRecordSet.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -25,15 +25,15 @@ import java.util.Iterator; import java.util.List; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.util.Objects.requireNonNull; public class InMemoryRecordSet diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/Page.java b/presto-spi/src/main/java/com/facebook/presto/spi/Page.java index b2a29047b1d6f..59a712a710cd6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/Page.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/Page.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; import org.openjdk.jol.info.ClassLayout; import java.util.ArrayList; @@ -24,7 +24,7 @@ import java.util.List; import java.util.Map; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; import static io.airlift.slice.SizeOf.sizeOf; import static java.lang.Math.min; import static java.lang.String.format; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java index cf099779e57ae..4b93acc4e3701 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.PageBuilderStatus; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.PageBuilderStatus; +import com.facebook.presto.common.type.Type; import java.util.ArrayList; import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static java.util.Collections.unmodifiableList; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexerFactory.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexerFactory.java index d269ad16da5e0..8633a07246ca1 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexerFactory.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexerFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java index a4e88e4e642c4..d586fe49cc08f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.SortOrder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/Plugin.java b/presto-spi/src/main/java/com/facebook/presto/spi/Plugin.java index 28e0c5c46e024..80fb28bcd42fd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/Plugin.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/Plugin.java @@ -13,7 +13,9 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.type.ParametricType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.connector.ConnectorFactory; import com.facebook.presto.spi.eventlistener.EventListenerFactory; import com.facebook.presto.spi.function.FunctionNamespaceManagerFactory; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.security.PasswordAuthenticatorFactory; import com.facebook.presto.spi.security.SystemAccessControlFactory; import com.facebook.presto.spi.session.SessionPropertyConfigurationManagerFactory; -import com.facebook.presto.spi.type.ParametricType; -import com.facebook.presto.spi.type.Type; import java.util.Set; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/RecordCursor.java b/presto-spi/src/main/java/com/facebook/presto/spi/RecordCursor.java index 07b703948bc9d..670814023bc5d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/RecordCursor.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/RecordCursor.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import java.io.Closeable; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java b/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java index 6b7b609f5b4f1..208a704c87360 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; import java.util.ArrayList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/RecordSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/RecordSet.java index 51fb87aa8e818..94213e0e80af6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/RecordSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/RecordSet.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/SortingProperty.java b/presto-spi/src/main/java/com/facebook/presto/spi/SortingProperty.java index b46a4a48678c9..f7589694f7a3d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/SortingProperty.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/SortingProperty.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/UpdatablePageSource.java b/presto-spi/src/main/java/com/facebook/presto/spi/UpdatablePageSource.java index a33afc5614eeb..97133574555da 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/UpdatablePageSource.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/UpdatablePageSource.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import io.airlift.slice.Slice; import java.util.Collection; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/VariableAllocator.java b/presto-spi/src/main/java/com/facebook/presto/spi/VariableAllocator.java index e688a3f08801a..d5ab65d158678 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/VariableAllocator.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/VariableAllocator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.relation.VariableReferenceExpression; -import com.facebook.presto.spi.type.Type; public interface VariableAllocator { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorContext.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorContext.java index 3c207377b94f5..7e2c705cad750 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorContext.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorContext.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.spi.connector; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PageSorter; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.function.FunctionMetadataManager; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; import com.facebook.presto.spi.relation.RowExpressionService; -import com.facebook.presto.spi.type.TypeManager; public interface ConnectorContext { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java index dc8cd0f553341..dae792c1c18cd 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.connector; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorInsertTableHandle; @@ -40,7 +41,6 @@ import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.util.Collection; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorNodePartitioningProvider.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorNodePartitioningProvider.java index f788d2b899a28..88939adb5cec4 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorNodePartitioningProvider.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorNodePartitioningProvider.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.spi.connector; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.Node; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.function.ToIntFunction; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java index 5fac4ec1adc4d..e4d93cc76d18a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.connector.classloader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorInsertTableHandle; @@ -43,7 +44,6 @@ import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import java.util.Collection; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeNodePartitioningProvider.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeNodePartitioningProvider.java index 28449138b8d43..6b234e257493a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeNodePartitioningProvider.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.connector.classloader; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitionHandle; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.function.ToIntFunction; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/AccumulatorStateSerializer.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/AccumulatorStateSerializer.java index 1a4fcf29aad8b..bd0703f12a408 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/AccumulatorStateSerializer.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/AccumulatorStateSerializer.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.Type; public interface AccumulatorStateSerializer { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/CombineFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/CombineFunction.java index 96de750f4bcaf..f4e9a6c45693c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/CombineFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/CombineFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java index e2aa43c3ea5f9..e56105a4d6c3b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionMetadata.java @@ -15,7 +15,7 @@ import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.function.QualifiedFunctionName; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import java.util.ArrayList; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java index ac7fda4c7025a..7bb5d009279bf 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/FunctionNamespaceManager.java @@ -14,8 +14,8 @@ package com.facebook.presto.spi.function; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.type.TypeSignature; import java.util.Collection; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/RankingWindowFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/RankingWindowFunction.java index 7b34afb262f8f..f7f959105e527 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/RankingWindowFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/RankingWindowFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; public abstract class RankingWindowFunction implements WindowFunction diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java index d332071c2e268..a2396f2e95914 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/Signature.java @@ -14,7 +14,7 @@ package com.facebook.presto.spi.function; import com.facebook.presto.common.function.QualifiedFunctionName; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java index 4d8a41594f7e9..de34dc899ed27 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlFunctionId.java @@ -14,8 +14,8 @@ package com.facebook.presto.spi.function; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java index 869624a50e6d1..e961c89259c14 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlInvokedFunction.java @@ -14,8 +14,8 @@ package com.facebook.presto.spi.function; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.type.TypeSignature; import java.util.Collections; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlParameter.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlParameter.java index 452a3e4380858..08b905a84bcdf 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlParameter.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/SqlParameter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java index 64ce78a63a77e..c87f27cde16ff 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/StandardFunctionResolution.java @@ -14,7 +14,7 @@ package com.facebook.presto.spi.function; import com.facebook.presto.common.function.OperatorType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/TypeVariableConstraint.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/TypeVariableConstraint.java index acde45b70a0e4..8cbce5ea43bc5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/TypeVariableConstraint.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/TypeVariableConstraint.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/ValueWindowFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/ValueWindowFunction.java index 8c4d98ad8d841..ddb750f3b7633 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/ValueWindowFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/ValueWindowFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; public abstract class ValueWindowFunction implements WindowFunction diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowFunction.java index d0d3ddf1c4864..742d0c7357b32 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; public interface WindowFunction { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowIndex.java b/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowIndex.java index 1dbbdc3ce7f00..771c0c370fba5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowIndex.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/function/WindowIndex.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.function; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java index 566c30effca5a..e777ef26257a5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.page; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.BlockEncodingSerde; import com.facebook.presto.spi.spiller.SpillCipher; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java index 90d1bf1fb1457..86f0c223c54a3 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.page; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockEncodingSerde; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; @@ -23,8 +23,8 @@ import java.util.Iterator; import java.util.NoSuchElementException; -import static com.facebook.presto.spi.block.BlockSerdeUtil.readBlock; -import static com.facebook.presto.spi.block.BlockSerdeUtil.writeBlock; +import static com.facebook.presto.common.block.BlockSerdeUtil.readBlock; +import static com.facebook.presto.common.block.BlockSerdeUtil.writeBlock; import static java.lang.Math.toIntExact; import static java.util.Arrays.asList; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/plan/FilterStatsCalculatorService.java b/presto-spi/src/main/java/com/facebook/presto/spi/plan/FilterStatsCalculatorService.java index a3455bb9652e2..b42f20a7fb73b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/plan/FilterStatsCalculatorService.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/plan/FilterStatsCalculatorService.java @@ -14,11 +14,11 @@ package com.facebook.presto.spi.plan; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.Type; import java.util.Map; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/plan/Ordering.java b/presto-spi/src/main/java/com/facebook/presto/spi/plan/Ordering.java index 89888bce9b68d..e9daf4cf3b3cb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/plan/Ordering.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/plan/Ordering.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.plan; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/plan/OrderingScheme.java b/presto-spi/src/main/java/com/facebook/presto/spi/plan/OrderingScheme.java index e04d7e07fc79f..179e290d1808d 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/plan/OrderingScheme.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/plan/OrderingScheme.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.plan; -import com.facebook.presto.spi.block.SortOrder; +import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java index 4fce37b7b05de..7ab300899d845 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java @@ -13,8 +13,9 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.predicate.Primitives; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java index 6582580a53e06..9597c4f4eb06a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java index 0aae758cd53cf..3de30d3537efb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java index 3441e7f25022b..0e0d816b458fa 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java @@ -13,9 +13,10 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java index b51d22bdbb9c2..4c04453ad4f6c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java @@ -13,8 +13,10 @@ */ package com.facebook.presto.spi.predicate; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Primitives; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java index eedbd90c6bdb4..176976af1a7c5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java index 1d67afbc10882..bbc342f179043 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -32,7 +32,7 @@ import java.util.function.Function; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static java.util.Objects.requireNonNull; /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java index a4a26392217fd..ba14b5297f5aa 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.relation.ConstantExpression; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java index 7930a5c29e0cf..eb52e281c4ea0 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.predicate; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/procedure/Procedure.java b/presto-spi/src/main/java/com/facebook/presto/spi/procedure/Procedure.java index c786539a6bf71..c84473732329c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/procedure/Procedure.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/procedure/Procedure.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.procedure; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.type.TypeSignature; import java.lang.invoke.MethodHandle; import java.util.ArrayList; @@ -22,7 +22,7 @@ import java.util.List; import java.util.Set; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Collections.unmodifiableList; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/CallExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/CallExpression.java index 867b35d1284d0..3f773ed8b7b09 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/CallExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/CallExpression.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.relation; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/ConstantExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/ConstantExpression.java index 96e835c552706..83b9b985b2f92 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/ConstantExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/ConstantExpression.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.predicate.Primitives; -import com.facebook.presto.spi.predicate.Utils; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Primitives; +import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/InputReferenceExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/InputReferenceExpression.java index 17578db1f5f91..4923b0461b2be 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/InputReferenceExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/InputReferenceExpression.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/LambdaDefinitionExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/LambdaDefinitionExpression.java index a2275af6688fb..cb24ca3ef92b4 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/LambdaDefinitionExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/LambdaDefinitionExpression.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.type.FunctionType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.FunctionType; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java index 449f88b1d2888..46f93d8a97dd6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.relation; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.function.SqlFunctionProperties; public interface Predicate { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java index bc02c08568188..31fffedcad4eb 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.relation; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.function.SqlFunctionProperties; import java.util.function.Supplier; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/RowExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/RowExpression.java index d9b11e6ea4a7f..13211b90c3664 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/RowExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/RowExpression.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/SpecialFormExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/SpecialFormExpression.java index e8bfd8032c978..67e7afe6e52f8 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/SpecialFormExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/SpecialFormExpression.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/VariableReferenceExpression.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/VariableReferenceExpression.java index b73f41db67d50..d33250eeef7ec 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/VariableReferenceExpression.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/VariableReferenceExpression.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.relation; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/session/PropertyMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/session/PropertyMetadata.java index 86ec6437b5834..d69a9ad288c79 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/session/PropertyMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/session/PropertyMetadata.java @@ -13,15 +13,15 @@ */ package com.facebook.presto.spi.session; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import java.util.function.Function; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static java.lang.String.format; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/statistics/ComputedStatistics.java b/presto-spi/src/main/java/com/facebook/presto/spi/statistics/ComputedStatistics.java index 07d97f5d359be..50332d5debfd6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/statistics/ComputedStatistics.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/statistics/ComputedStatistics.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi.statistics; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; import java.util.ArrayList; import java.util.HashMap; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java b/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java index 690077dab29ba..c78a22bc7f64e 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.block.DictionaryBlock; -import com.facebook.presto.spi.block.DictionaryId; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.block.DictionaryBlock; +import com.facebook.presto.common.block.DictionaryId; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; import org.testng.annotations.Test; -import static com.facebook.presto.spi.block.DictionaryId.randomDictionaryId; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.block.DictionaryId.randomDictionaryId; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static org.testng.Assert.assertEquals; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingSession.java b/presto-spi/src/test/java/com/facebook/presto/spi/TestingSession.java similarity index 90% rename from presto-spi/src/test/java/com/facebook/presto/spi/block/TestingSession.java rename to presto-spi/src/test/java/com/facebook/presto/spi/TestingSession.java index 48ce4bec7681a..97be7a9064ff5 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/block/TestingSession.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/TestingSession.java @@ -11,18 +11,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.block; +package com.facebook.presto.spi; -import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.function.SqlFunctionProperties; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.spi.security.ConnectorIdentity; import java.util.Locale; import java.util.Optional; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.spi.StandardErrorCode.INVALID_SESSION_PROPERTY; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static java.util.Locale.ENGLISH; public final class TestingSession diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java index 1a2c69ab1f3ec..c29ad83d2f3a1 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java @@ -35,7 +35,7 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @Fork(1) @Warmup(iterations = 5) diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java index 77ccf3915d0a3..212b6e266e58e 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java @@ -14,15 +14,15 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java index 418f8bd3e7cdb..53364f4afce0a 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java @@ -14,24 +14,24 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.TestingIdType.ID; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.TestingIdType.ID; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java index 836adeae50d91..12c39b2f16e7c 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java @@ -14,12 +14,12 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ImmutableList; @@ -28,7 +28,7 @@ import java.util.Iterator; -import static com.facebook.presto.spi.type.TestingIdType.ID; +import static com.facebook.presto.common.type.TestingIdType.ID; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java index ae824642ba21d..7221e640730de 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java @@ -14,12 +14,12 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ImmutableList; @@ -29,10 +29,10 @@ import java.util.Map; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java index f4ce45a29f1f2..f59ac7cf0b06a 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java @@ -14,20 +14,20 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java index a7fc8725308cd..ae378e8de4654 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java @@ -14,22 +14,22 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java index 08d8ac1bb2e25..1633880d540a3 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java @@ -14,14 +14,14 @@ package com.facebook.presto.spi.predicate; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TestingColumnHandle; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.TestingBlockEncodingSerde; -import com.facebook.presto.spi.block.TestingBlockJsonSerde; -import com.facebook.presto.spi.type.TestingTypeDeserializer; -import com.facebook.presto.spi.type.TestingTypeManager; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationContext; @@ -34,11 +34,11 @@ import java.io.IOException; import java.util.Map; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.predicate.TupleDomain.columnWiseUnion; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataDateFunctions.java b/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataDateFunctions.java index af484c58a4806..775fdcbb7ac84 100644 --- a/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataDateFunctions.java +++ b/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataDateFunctions.java @@ -14,13 +14,13 @@ package com.facebook.presto.teradata.functions; import com.facebook.airlift.concurrent.ThreadLocalCache; +import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; -import com.facebook.presto.spi.function.SqlFunctionProperties; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.TimeZoneKey; import io.airlift.slice.Slice; import org.joda.time.DateTimeZone; import org.joda.time.chrono.ISOChronology; @@ -28,13 +28,13 @@ import java.util.Locale; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackMillisUtc; +import static com.facebook.presto.common.type.DateTimeEncoding.unpackZoneKey; +import static com.facebook.presto.common.type.TimeZoneKey.MAX_TIME_ZONE_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.common.type.TimeZoneKey.getTimeZoneKeys; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackMillisUtc; -import static com.facebook.presto.spi.type.DateTimeEncoding.unpackZoneKey; -import static com.facebook.presto.spi.type.TimeZoneKey.MAX_TIME_ZONE_KEY; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; -import static com.facebook.presto.spi.type.TimeZoneKey.getTimeZoneKeys; import static com.facebook.presto.teradata.functions.dateformat.DateFormatParser.createDateTimeFormatter; import static com.google.common.base.Throwables.throwIfInstanceOf; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataStringFunctions.java b/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataStringFunctions.java index 3fa3aa89890c8..2dd0a0dc839b4 100644 --- a/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataStringFunctions.java +++ b/presto-teradata-functions/src/main/java/com/facebook/presto/teradata/functions/TeradataStringFunctions.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.teradata.functions; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.FunctionDependency; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.io.BaseEncoding; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataDateFunctions.java b/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataDateFunctions.java index 1b626233e782f..dbca54b540a5d 100644 --- a/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataDateFunctions.java +++ b/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataDateFunctions.java @@ -14,18 +14,18 @@ package com.facebook.presto.teradata.functions; import com.facebook.presto.Session; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.SqlDate; +import com.facebook.presto.common.type.TimestampType; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.SqlDate; -import com.facebook.presto.spi.type.TimestampType; import org.joda.time.DateTime; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.time.LocalDate; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.DateTimeTestingUtils.sqlTimestampOf; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static java.lang.Math.toIntExact; diff --git a/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataFunctions.java b/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataFunctions.java index 64ef0d0c49219..be6efbffec1ef 100644 --- a/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataFunctions.java +++ b/presto-teradata-functions/src/test/java/com/facebook/presto/teradata/functions/TestTeradataFunctions.java @@ -17,10 +17,10 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; public class TestTeradataFunctions extends AbstractTestFunctions diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestDistributedQueries.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestDistributedQueries.java index 4e0762a7d143b..7416c46744439 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestDistributedQueries.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestDistributedQueries.java @@ -38,8 +38,8 @@ import java.util.function.Supplier; import static com.facebook.presto.SystemSessionProperties.QUERY_MAX_MEMORY; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.connector.informationSchema.InformationSchemaMetadata.INFORMATION_SCHEMA; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingAccessControlManager.TestingPrivilegeType.ADD_COLUMN; import static com.facebook.presto.testing.TestingAccessControlManager.TestingPrivilegeType.CREATE_TABLE; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestIntegrationSmokeTest.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestIntegrationSmokeTest.java index e254f195c8e8f..f3e64eabbed26 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestIntegrationSmokeTest.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestIntegrationSmokeTest.java @@ -17,7 +17,7 @@ import org.intellij.lang.annotations.Language; import org.testng.annotations.Test; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.testing.assertions.Assert.assertEquals; import static com.facebook.presto.tests.QueryAssertions.assertContains; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java index 65b96412a3178..09ffe618920b5 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java @@ -15,13 +15,13 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.metadata.BuiltInFunction; import com.facebook.presto.metadata.FunctionListBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType; import com.facebook.presto.sql.analyzer.FeaturesConfig.JoinReorderingStrategy; import com.facebook.presto.sql.analyzer.SemanticException; @@ -56,16 +56,16 @@ import static com.facebook.presto.SystemSessionProperties.DISTRIBUTED_SORT; import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.connector.informationSchema.InformationSchemaMetadata.INFORMATION_SCHEMA; import static com.facebook.presto.operator.scalar.ApplyFunction.APPLY_FUNCTION; import static com.facebook.presto.operator.scalar.InvokeFunction.INVOKE_FUNCTION; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.INVALID_PARAMETER_USAGE; import static com.facebook.presto.sql.analyzer.SemanticErrorCode.MUST_BE_AGGREGATE_OR_GROUP_BY; import static com.facebook.presto.sql.tree.ExplainType.Type.DISTRIBUTED; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueryFramework.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueryFramework.java index f0caf36db5aae..a33ae0daeb71b 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueryFramework.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueryFramework.java @@ -14,6 +14,7 @@ package com.facebook.presto.tests; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.CostCalculator; import com.facebook.presto.cost.CostCalculatorUsingExchanges; import com.facebook.presto.cost.CostCalculatorWithEstimatedExchanges; @@ -23,7 +24,6 @@ import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.security.AccessDeniedException; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.analyzer.QueryExplainer; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java index 6fc0daefef572..e4fe08ce54b84 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestingPrestoClient.java @@ -19,13 +19,13 @@ import com.facebook.presto.client.QueryError; import com.facebook.presto.client.QueryStatusInfo; import com.facebook.presto.client.StatementClient; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataUtil; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.metadata.QualifiedTablePrefix; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.session.ResourceEstimates; -import com.facebook.presto.spi.type.Type; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -42,10 +42,10 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.client.StatementClientFactory.newStatementClient; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.spi.session.ResourceEstimates.CPU_TIME; import static com.facebook.presto.spi.session.ResourceEstimates.EXECUTION_TIME; import static com.facebook.presto.spi.session.ResourceEstimates.PEAK_MEMORY; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.transaction.TransactionBuilder.transaction; import static com.google.common.base.Preconditions.checkState; import static com.google.common.collect.Iterables.transform; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/CreateHll.java b/presto-tests/src/main/java/com/facebook/presto/tests/CreateHll.java index 92d798173a488..5c668f6b09d6d 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/CreateHll.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/CreateHll.java @@ -14,9 +14,9 @@ package com.facebook.presto.tests; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import io.airlift.slice.Slice; import static com.facebook.presto.operator.aggregation.ApproximateSetAggregation.DEFAULT_STANDARD_ERROR; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/CustomAdd.java b/presto-tests/src/main/java/com/facebook/presto/tests/CustomAdd.java index 39d2d30eb7c6b..a55adae29bd2e 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/CustomAdd.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/CustomAdd.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tests; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; public final class CustomAdd { diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/CustomRank.java b/presto-tests/src/main/java/com/facebook/presto/tests/CustomRank.java index 308f092ea5824..7a79a7c821116 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/CustomRank.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/CustomRank.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.tests; -import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.function.RankingWindowFunction; import com.facebook.presto.spi.function.WindowFunctionSignature; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; @WindowFunctionSignature(name = "custom_rank", returnType = "bigint") public class CustomRank diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/CustomSum.java b/presto-tests/src/main/java/com/facebook/presto/tests/CustomSum.java index 28d8214416a4a..5cd2ee4966ad6 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/CustomSum.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/CustomSum.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.tests; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.operator.aggregation.state.NullableLongState; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.AggregationFunction; import com.facebook.presto.spi.function.AggregationState; import com.facebook.presto.spi.function.CombineFunction; import com.facebook.presto.spi.function.InputFunction; import com.facebook.presto.spi.function.OutputFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.StandardTypes; @AggregationFunction("custom_sum") public final class CustomSum diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/H2QueryRunner.java b/presto-tests/src/main/java/com/facebook/presto/tests/H2QueryRunner.java index f18180a16a891..6932548dba5a9 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/H2QueryRunner.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/H2QueryRunner.java @@ -14,18 +14,18 @@ package com.facebook.presto.tests; import com.facebook.presto.Session; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.TimestampType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.tpch.TpchMetadata; @@ -59,21 +59,21 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; import static com.facebook.presto.tpch.TpchMetadata.TINY_SCHEMA_NAME; import static com.facebook.presto.tpch.TpchRecordSet.createTpchRecordSet; import static com.facebook.presto.type.UnknownType.UNKNOWN; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java b/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java index a1d0aa6852475..47eff1a2084c6 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/StatefulSleepingSum.java @@ -14,6 +14,7 @@ package com.facebook.presto.tests; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; @@ -21,19 +22,18 @@ import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicInteger; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.HIDDEN; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/StructuralTestUtil.java b/presto-tests/src/main/java/com/facebook/presto/tests/StructuralTestUtil.java index 00c3a033c1837..2ebaccabf255d 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/StructuralTestUtil.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/StructuralTestUtil.java @@ -14,17 +14,17 @@ package com.facebook.presto.tests; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.StandardTypes; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.StandardTypes; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignatureParameter; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/TestingPrestoClient.java b/presto-tests/src/main/java/com/facebook/presto/tests/TestingPrestoClient.java index 839159cf1beb1..d2831666cfeaf 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/TestingPrestoClient.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/TestingPrestoClient.java @@ -18,16 +18,16 @@ import com.facebook.presto.client.IntervalYearMonth; import com.facebook.presto.client.QueryData; import com.facebook.presto.client.QueryStatusInfo; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.SqlTimestamp; +import com.facebook.presto.common.type.SqlTimestampWithTimeZone; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.PrestoWarning; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.SqlTimestamp; -import com.facebook.presto.spi.type.SqlTimestampWithTimeZone; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.type.SqlIntervalDayTime; @@ -53,20 +53,20 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimeWithTimeZoneType.TIME_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.testing.MaterializedResult.DEFAULT_PRECISION; import static com.facebook.presto.type.IntervalDayTimeType.INTERVAL_DAY_TIME; import static com.facebook.presto.type.IntervalYearMonthType.INTERVAL_YEAR_MONTH; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/TestingProcedures.java b/presto-tests/src/main/java/com/facebook/presto/tests/TestingProcedures.java index cc4d60b7fc045..157e63abd9914 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/TestingProcedures.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/TestingProcedures.java @@ -26,11 +26,11 @@ import java.util.Arrays; import java.util.List; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_PROCEDURE_ARGUMENT; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.facebook.presto.util.Reflection.methodHandle; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataType.java b/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataType.java index a382d8277d894..9f5bd66e34080 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataType.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataType.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.tests.datatype; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.RealType; -import com.facebook.presto.spi.type.SmallintType; -import com.facebook.presto.spi.type.TinyintType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.BooleanType; +import com.facebook.presto.common.type.DoubleType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.RealType; +import com.facebook.presto.common.type.SmallintType; +import com.facebook.presto.common.type.TinyintType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarbinaryType; +import com.facebook.presto.common.type.VarcharType; import java.math.BigDecimal; import java.time.LocalDate; @@ -30,10 +30,10 @@ import java.util.Optional; import java.util.function.Function; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.google.common.base.Strings.padEnd; import static com.google.common.io.BaseEncoding.base16; import static java.lang.String.format; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataTypeTest.java b/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataTypeTest.java index 9c318075c9241..f8d891dc4ddab 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataTypeTest.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/datatype/DataTypeTest.java @@ -14,7 +14,7 @@ package com.facebook.presto.tests.datatype; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.Type; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.QueryRunner; import com.facebook.presto.tests.sql.TestTable; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/AppendingRecordSet.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/AppendingRecordSet.java index fc34c8cc75d08..f28fbb7ee9ff3 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/AppendingRecordSet.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/AppendingRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Primitives; import io.airlift.slice.Slice; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ConcatRecordSet.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ConcatRecordSet.java index 6063a93b04153..daa4b83cad2d8 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ConcatRecordSet.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ConcatRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.Iterator; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java index 2b0275d8dadff..e6d3a76dbc210 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java @@ -23,9 +23,9 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.TupleDomain; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; public class ExampleSystemTable implements SystemTable diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/MaterializedTupleRecordSet.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/MaterializedTupleRecordSet.java index 3afc665e7c8ef..9d4b9f4893609 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/MaterializedTupleRecordSet.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/MaterializedTupleRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java index a38b7f933df39..e81659170c072 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorIndex; import com.facebook.presto.spi.ConnectorIndexHandle; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.MappedRecordSet; import com.facebook.presto.tpch.TpchColumnHandle; import com.google.common.base.Function; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java index 84e38d0829e6a..317e4348e8ed4 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.tpch.TpchMetadata; import com.facebook.presto.tpch.TpchRecordSetProvider; import com.facebook.presto.tpch.TpchTableHandle; diff --git a/presto-tests/src/test/java/com/facebook/presto/connector/informationschema/BenchmarkInformationSchema.java b/presto-tests/src/test/java/com/facebook/presto/connector/informationschema/BenchmarkInformationSchema.java index f8b9fea37fbba..376f0909ce268 100644 --- a/presto-tests/src/test/java/com/facebook/presto/connector/informationschema/BenchmarkInformationSchema.java +++ b/presto-tests/src/test/java/com/facebook/presto/connector/informationschema/BenchmarkInformationSchema.java @@ -50,7 +50,7 @@ import java.util.function.Function; import java.util.stream.IntStream; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/AbstractTestEngineOnlyQueries.java b/presto-tests/src/test/java/com/facebook/presto/tests/AbstractTestEngineOnlyQueries.java index 2134c91f589dc..8a663d0ed545b 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/AbstractTestEngineOnlyQueries.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/AbstractTestEngineOnlyQueries.java @@ -14,7 +14,7 @@ package com.facebook.presto.tests; import com.facebook.presto.Session; -import com.facebook.presto.spi.type.TimeZoneKey; +import com.facebook.presto.common.type.TimeZoneKey; import org.intellij.lang.annotations.Language; import org.testng.annotations.Test; diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestH2QueryRunner.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestH2QueryRunner.java index 678450c66d621..3c7774347d722 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestH2QueryRunner.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestH2QueryRunner.java @@ -24,7 +24,7 @@ import java.time.format.DateTimeFormatter; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.google.common.base.Preconditions.checkState; import static org.testng.Assert.assertEquals; diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java index a3dd09ce6e1dd..d8aabd377c900 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java @@ -34,10 +34,10 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.SystemSessionProperties.PUSH_PARTIAL_AGGREGATION_THROUGH_JOIN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.predicate.Marker.Bound.EXACTLY; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingSession.TESTING_CATALOG; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestQueryPlanDeterminism.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestQueryPlanDeterminism.java index 3c72675416d1a..68fe41c6a6aea 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestQueryPlanDeterminism.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestQueryPlanDeterminism.java @@ -14,9 +14,9 @@ package com.facebook.presto.tests; import com.facebook.presto.Session; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.spi.ConnectorId; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.testing.LocalQueryRunner; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingAccessControlManager; diff --git a/presto-thrift-connector-api/pom.xml b/presto-thrift-connector-api/pom.xml index 34aa7738a1e6d..a67fc3196f2d1 100644 --- a/presto-thrift-connector-api/pom.xml +++ b/presto-thrift-connector-api/pom.xml @@ -38,6 +38,11 @@ presto-spi + + com.facebook.presto + presto-common + + io.airlift slice diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftBlock.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftBlock.java index 3687de8af9e85..0c1da2695635b 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftBlock.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftBlock.java @@ -16,6 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftBigint; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftBigintArray; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftBoolean; @@ -29,10 +33,6 @@ import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftVarchar; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import javax.annotation.Nullable; @@ -40,16 +40,16 @@ import java.util.Objects; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; -import static com.facebook.presto.spi.type.StandardTypes.ARRAY; -import static com.facebook.presto.spi.type.StandardTypes.BIGINT; -import static com.facebook.presto.spi.type.StandardTypes.BOOLEAN; -import static com.facebook.presto.spi.type.StandardTypes.DATE; -import static com.facebook.presto.spi.type.StandardTypes.DOUBLE; -import static com.facebook.presto.spi.type.StandardTypes.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; -import static com.facebook.presto.spi.type.StandardTypes.JSON; -import static com.facebook.presto.spi.type.StandardTypes.TIMESTAMP; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; +import static com.facebook.presto.common.type.StandardTypes.ARRAY; +import static com.facebook.presto.common.type.StandardTypes.BIGINT; +import static com.facebook.presto.common.type.StandardTypes.BOOLEAN; +import static com.facebook.presto.common.type.StandardTypes.DATE; +import static com.facebook.presto.common.type.StandardTypes.DOUBLE; +import static com.facebook.presto.common.type.StandardTypes.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.JSON; +import static com.facebook.presto.common.type.StandardTypes.TIMESTAMP; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftColumnMetadata.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftColumnMetadata.java index 9bea994cb61b6..0b7c1c0841f30 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftColumnMetadata.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftColumnMetadata.java @@ -16,16 +16,16 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.TypeManager; import javax.annotation.Nullable; import java.util.Objects; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.connector.thrift.api.NameValidationUtils.checkValidName; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java index fbf9940e31770..fa560743d4b01 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java @@ -16,11 +16,11 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import javax.annotation.Nullable; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigint.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigint.java index a926523cd8560..3ca667c0c530c 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigint.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigint.java @@ -16,11 +16,11 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -29,10 +29,10 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.bigintData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromLongBasedBlock; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromLongBasedColumn; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigintArray.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigintArray.java index 26598246a04ac..a9ba35b9b76b9 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigintArray.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBigintArray.java @@ -16,12 +16,12 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.AbstractArrayBlock; +import com.facebook.presto.common.block.ArrayBlock; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.AbstractArrayBlock; -import com.facebook.presto.spi.block.ArrayBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -30,11 +30,11 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.bigintArrayData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.calculateOffsets; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.sameSizeIfPresent; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.totalSize; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBoolean.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBoolean.java index 815e4bc97ba93..3c1ca4b8620d9 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBoolean.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftBoolean.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.ByteArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.ByteArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -28,8 +28,8 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.booleanData; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftColumnData.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftColumnData.java index eb687625e002f..fc311057f9b5b 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftColumnData.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftColumnData.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.connector.thrift.api.datatypes; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; public interface PrestoThriftColumnData { diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDate.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDate.java index 7d09e03ca06ed..e4e897213951c 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDate.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDate.java @@ -16,11 +16,11 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -29,10 +29,10 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.DateType.DATE; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.dateData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromIntBasedBlock; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromIntBasedColumn; -import static com.facebook.presto.spi.type.DateType.DATE; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDouble.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDouble.java index bb6bf33d171e2..a7a7003c91daf 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDouble.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftDouble.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -28,9 +28,9 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.booleanData; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.doubleData; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Double.doubleToLongBits; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftHyperLogLog.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftHyperLogLog.java index 835f663d1b4a2..be7b1303d555e 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftHyperLogLog.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftHyperLogLog.java @@ -16,18 +16,18 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; import java.util.Objects; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.hyperLogLogData; import static com.facebook.presto.connector.thrift.api.datatypes.SliceData.fromSliceBasedBlock; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftInteger.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftInteger.java index 17e60d2272405..a66ca5778bcf3 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftInteger.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftInteger.java @@ -16,11 +16,11 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.IntArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.IntArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -29,10 +29,10 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.integerData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromIntBasedBlock; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromIntBasedColumn; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftJson.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftJson.java index dc75a4229d94c..8164e2df538e3 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftJson.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftJson.java @@ -16,9 +16,9 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTimestamp.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTimestamp.java index 33aa84d9a641b..7adb99e729fdb 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTimestamp.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTimestamp.java @@ -16,11 +16,11 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.LongArrayBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.LongArrayBlock; -import com.facebook.presto.spi.type.Type; import javax.annotation.Nullable; @@ -29,10 +29,10 @@ import java.util.Optional; import static com.facebook.drift.annotations.ThriftField.Requiredness.OPTIONAL; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.timestampData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromLongBasedBlock; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftTypeUtils.fromLongBasedColumn; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTypeUtils.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTypeUtils.java index a084ed876a540..3e81e141b1014 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTypeUtils.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftTypeUtils.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.connector.thrift.api.datatypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; import java.util.function.BiFunction; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftVarchar.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftVarchar.java index eb3b9e9faaaca..34c2729e6495b 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftVarchar.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/PrestoThriftVarchar.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import javax.annotation.Nullable; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/SliceData.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/SliceData.java index ceafee0a43d38..67f249557aaa9 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/SliceData.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/datatypes/SliceData.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.connector.thrift.api.datatypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.VariableWidthBlock; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.VariableWidthBlock; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java index 26f1c0059930c..7836b9900b6ad 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.spi.predicate.EquatableValueSet; import com.facebook.presto.spi.predicate.EquatableValueSet.ValueEntry; -import com.facebook.presto.spi.type.Type; import java.util.ArrayList; import java.util.List; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java index b1081f5762eb9..a21ff423ed0ce 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java @@ -14,13 +14,13 @@ package com.facebook.presto.connector.thrift.api; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.testng.annotations.Test; @@ -32,19 +32,19 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.Function; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.JsonType.JSON; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.fromBlock; import static com.facebook.presto.connector.thrift.api.PrestoThriftPageResult.fromRecordSet; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.JsonType.JSON; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; -import static com.facebook.presto.spi.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.Math.toIntExact; import static java.util.Objects.requireNonNull; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/datatypes/TestPrestoThriftBigint.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/datatypes/TestPrestoThriftBigint.java index 3c9213c2f203d..39a9553d2c8b9 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/datatypes/TestPrestoThriftBigint.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/datatypes/TestPrestoThriftBigint.java @@ -13,19 +13,19 @@ */ package com.facebook.presto.connector.thrift.api.datatypes; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import org.testng.annotations.Test; import java.util.Arrays; import java.util.List; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.bigintData; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.integerData; import static com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftBigint.fromBlock; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static java.util.Collections.unmodifiableList; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java index a44055f4efc9f..a1da65e0ab15c 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java @@ -16,8 +16,8 @@ import com.facebook.presto.spi.predicate.ValueSet; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftValueSet.fromValueSet; -import static com.facebook.presto.spi.type.HyperLogLogType.HYPER_LOG_LOG; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java index dde4926f888f8..bf2eb0bd5c5ac 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java @@ -18,9 +18,9 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.JsonType.JSON; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.jsonData; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftValueSet.fromValueSet; -import static com.facebook.presto.spi.type.JsonType.JSON; import static io.airlift.slice.Slices.utf8Slice; import static java.nio.charset.StandardCharsets.UTF_8; import static org.testng.Assert.assertEquals; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java index 7aa96e8332506..f6a2a503639a6 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java @@ -22,13 +22,13 @@ import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.bigintData; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.ABOVE; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.BELOW; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.EXACTLY; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftValueSet.fromValueSet; import static com.facebook.presto.spi.predicate.Range.range; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftColumnHandle.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftColumnHandle.java index 31db3bda43fcb..3fc9b92963514 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftColumnHandle.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftColumnHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftConnectorFactory.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftConnectorFactory.java index 0de774d246207..6448fd36148a6 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftConnectorFactory.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftConnectorFactory.java @@ -15,12 +15,12 @@ import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.drift.transport.netty.client.DriftNettyClientModule; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.thrift.util.RebindSafeMBeanServer; import com.facebook.presto.spi.ConnectorHandleResolver; import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorFactory; -import com.facebook.presto.spi.type.TypeManager; import com.google.inject.Injector; import com.google.inject.Module; import org.weakref.jmx.guice.MBeanModule; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java index fa3a7c58dc86d..bb9e7fe807f9c 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.thrift; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableToken; import com.facebook.presto.connector.thrift.api.PrestoThriftPageResult; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java index f112e4920c374..3544ebca267aa 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java @@ -15,6 +15,7 @@ import com.facebook.drift.TException; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.thrift.annotations.ForMetadataRefresh; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableSchemaName; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableTableMetadata; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java index 472d3f7718ef9..249aa7dbf512e 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.thrift; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableToken; import com.facebook.presto.connector.thrift.api.PrestoThriftPageResult; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableMetadata.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableMetadata.java index e6a6cddfad285..bc6d99615c654 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableMetadata.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableMetadata.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.thrift.api.PrestoThriftColumnMetadata; import com.facebook.presto.connector.thrift.api.PrestoThriftTableMetadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java index 3cb64005d6b5d..a99995f79b2e0 100644 --- a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java +++ b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableColumnSet; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableSchemaName; @@ -29,9 +31,7 @@ import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.block.Block; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.primitives.Ints; @@ -46,8 +46,8 @@ import java.util.concurrent.CountDownLatch; import java.util.stream.IntStream; +import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.integerData; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.util.concurrent.Futures.immediateFuture; import static java.util.Collections.shuffle; diff --git a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/integration/TestThriftIntegrationSmokeTest.java b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/integration/TestThriftIntegrationSmokeTest.java index c22f9d9d1ecfd..f7b2d2c342014 100644 --- a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/integration/TestThriftIntegrationSmokeTest.java +++ b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/integration/TestThriftIntegrationSmokeTest.java @@ -18,8 +18,8 @@ import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.connector.thrift.integration.ThriftQueryRunner.createThriftQueryRunner; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static com.facebook.presto.tests.QueryAssertions.assertContains; public class TestThriftIntegrationSmokeTest diff --git a/presto-thrift-testing-server/pom.xml b/presto-thrift-testing-server/pom.xml index 33eb88b9fab79..8fe2712cd4d94 100644 --- a/presto-thrift-testing-server/pom.xml +++ b/presto-thrift-testing-server/pom.xml @@ -84,6 +84,11 @@ presto-spi + + com.facebook.presto + presto-common + + com.fasterxml.jackson.core jackson-annotations diff --git a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ListBasedRecordSet.java b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ListBasedRecordSet.java index 115f37d22cac4..32da7611ec29a 100644 --- a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ListBasedRecordSet.java +++ b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ListBasedRecordSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.thrift.server; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftIndexedTpchService.java b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftIndexedTpchService.java index 4cbd7b672ce6e..5d6a8ebbabf5b 100644 --- a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftIndexedTpchService.java +++ b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftIndexedTpchService.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.thrift.server; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableToken; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.split.MappedRecordSet; import com.facebook.presto.tests.tpch.TpchIndexedData; import com.facebook.presto.tests.tpch.TpchIndexedData.IndexedTable; diff --git a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java index fa987657331ff..bedf6bbae243c 100644 --- a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java +++ b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.thrift.server; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.connector.thrift.api.PrestoThriftColumnMetadata; import com.facebook.presto.connector.thrift.api.PrestoThriftId; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.ListenableFuture; @@ -52,9 +52,9 @@ import static com.facebook.airlift.concurrent.Threads.threadsNamed; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.fromBlock; import static com.facebook.presto.connector.thrift.server.SplitInfo.normalSplit; -import static com.facebook.presto.spi.block.PageBuilderStatus.DEFAULT_MAX_PAGE_SIZE_IN_BYTES; import static com.facebook.presto.tpch.TpchMetadata.getPrestoType; import static com.facebook.presto.tpch.TpchRecordSet.createTpchRecordSet; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-thrift-testing-server/src/test/java/com/facebook/presto/connector/thrift/server/TestListBasedRecordSet.java b/presto-thrift-testing-server/src/test/java/com/facebook/presto/connector/thrift/server/TestListBasedRecordSet.java index f2fa5fb7bf86e..7992897d5c9c3 100644 --- a/presto-thrift-testing-server/src/test/java/com/facebook/presto/connector/thrift/server/TestListBasedRecordSet.java +++ b/presto-thrift-testing-server/src/test/java/com/facebook/presto/connector/thrift/server/TestListBasedRecordSet.java @@ -20,9 +20,9 @@ import java.util.Arrays; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertThrows; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsColumnHandle.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsColumnHandle.java index e33b0ced1cc3b..bf8236f516de5 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsColumnHandle.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsColumnHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.tpcds; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java index 9d5ca71916d5f..b24421fc433f0 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.tpcds; +import com.facebook.presto.common.type.BigintType; +import com.facebook.presto.common.type.DateType; +import com.facebook.presto.common.type.IntegerType; +import com.facebook.presto.common.type.TimeType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -27,11 +32,6 @@ import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.DateType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.TimeType; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.tpcds.statistics.TpcdsTableStatisticsFactory; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -45,9 +45,9 @@ import java.util.Optional; import java.util.Set; -import static com.facebook.presto.spi.type.CharType.createCharType; -import static com.facebook.presto.spi.type.DecimalType.createDecimalType; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; +import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.common.type.DecimalType.createDecimalType; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static java.lang.String.format; import static java.util.Locale.ENGLISH; import static java.util.Objects.requireNonNull; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsNodePartitioningProvider.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsNodePartitioningProvider.java index 99729450b2464..f02ac17203f0d 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsNodePartitioningProvider.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.tpcds; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import java.util.List; import java.util.Set; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsRecordSet.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsRecordSet.java index b6c5e036f195f..09f54ee11b46d 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsRecordSet.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsRecordSet.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.tpcds; +import com.facebook.presto.common.type.DecimalParseResult; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.type.DecimalParseResult; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import com.teradata.tpcds.Results; import com.teradata.tpcds.column.Column; @@ -32,8 +32,8 @@ import java.util.Iterator; import java.util.List; -import static com.facebook.presto.spi.type.Chars.trimTrailingSpaces; -import static com.facebook.presto.spi.type.Decimals.rescale; +import static com.facebook.presto.common.type.Chars.trimTrailingSpaces; +import static com.facebook.presto.common.type.Decimals.rescale; import static com.facebook.presto.tpcds.TpcdsMetadata.getPrestoType; import static com.google.common.base.Preconditions.checkState; import static java.lang.Double.parseDouble; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java index d6019e2fdcbae..1f6da92fb1f08 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/statistics/TpcdsTableStatisticsFactory.java @@ -14,16 +14,16 @@ package com.facebook.presto.tpcds.statistics; +import com.facebook.presto.common.type.CharType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; -import com.facebook.presto.spi.type.CharType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.tpcds.TpcdsColumnHandle; import com.teradata.tpcds.Table; import io.airlift.slice.Slice; @@ -33,13 +33,13 @@ import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.isLongDecimal; -import static com.facebook.presto.spi.type.Decimals.isShortDecimal; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.TimeType.TIME; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.isLongDecimal; +import static com.facebook.presto.common.type.Decimals.isShortDecimal; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.TimeType.TIME; import static java.lang.Double.parseDouble; public class TpcdsTableStatisticsFactory diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java index fd460ba73c9e0..5b268fbf8d0b8 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.block.Block; -import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; import static java.lang.Math.toIntExact; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchColumnHandle.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchColumnHandle.java index e1fc90f26a5a8..6cc0eaed7da55 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchColumnHandle.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchColumnHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java index 5330054e6d907..cc8dd1d4f8feb 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -27,7 +30,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.SortingProperty; -import com.facebook.presto.spi.block.SortOrder; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.predicate.NullableValue; @@ -38,8 +40,6 @@ import com.facebook.presto.spi.statistics.Estimate; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarcharType; import com.facebook.presto.tpch.statistics.ColumnStatisticsData; import com.facebook.presto.tpch.statistics.StatisticsEstimator; import com.facebook.presto.tpch.statistics.TableStatisticsData; @@ -71,12 +71,12 @@ import java.util.function.Function; import java.util.stream.Collectors; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; import static com.facebook.presto.tpch.util.PredicateUtils.convertToPredicate; import static com.facebook.presto.tpch.util.PredicateUtils.filterOutColumnFromPredicate; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchNodePartitioningProvider.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchNodePartitioningProvider.java index 8013e0437df73..804c9e3dffcba 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchNodePartitioningProvider.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchNodePartitioningProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -22,15 +23,14 @@ import com.facebook.presto.spi.connector.ConnectorNodePartitioningProvider; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.Set; import java.util.function.ToIntFunction; +import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.connector.ConnectorBucketNodeMap.createBucketNodeMap; -import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.Math.toIntExact; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java index 94b810e5cfb7d..11e48775fbabd 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.Type; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-verifier/pom.xml b/presto-verifier/pom.xml index b9f1487cf2d25..a0966a49b5b59 100644 --- a/presto-verifier/pom.xml +++ b/presto-verifier/pom.xml @@ -64,6 +64,11 @@ com.facebook.presto presto-spi + + + com.facebook.presto + presto-common + com.facebook.presto diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ArrayColumnValidator.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ArrayColumnValidator.java index 015848674cef9..6c14db49ed1f3 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ArrayColumnValidator.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ArrayColumnValidator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.verifier.checksum; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.tree.CoalesceExpression; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.FunctionCall; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ChecksumResult.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ChecksumResult.java index 95473f370c56e..a3b31419480c2 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ChecksumResult.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/ChecksumResult.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.checksum; -import com.facebook.presto.spi.type.SqlVarbinary; +import com.facebook.presto.common.type.SqlVarbinary; import java.sql.ResultSet; import java.sql.ResultSetMetaData; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/FloatingPointColumnValidator.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/FloatingPointColumnValidator.java index a60a9ae31cf31..b0a86b2eaa842 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/FloatingPointColumnValidator.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/FloatingPointColumnValidator.java @@ -30,7 +30,7 @@ import java.util.Objects; import java.util.Optional; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.sql.tree.ArithmeticUnaryExpression.Sign.MINUS; import static com.facebook.presto.sql.tree.ComparisonExpression.Operator.EQUAL; import static com.facebook.presto.verifier.framework.VerifierUtil.delimitedIdentifier; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/MapColumnValidator.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/MapColumnValidator.java index 08d5ef99d1cc2..3f45f231c3a82 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/MapColumnValidator.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/MapColumnValidator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.verifier.checksum; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.Type; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.Type; import com.facebook.presto.sql.tree.CoalesceExpression; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.LongLiteral; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/RowColumnValidator.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/RowColumnValidator.java index 7e5c28b5d16b2..14e20675857f9 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/RowColumnValidator.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/checksum/RowColumnValidator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.verifier.checksum; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.RowType.Field; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.RowType.Field; import com.facebook.presto.sql.tree.DereferenceExpression; import com.facebook.presto.sql.tree.Expression; import com.facebook.presto.sql.tree.LongLiteral; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/Column.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/Column.java index 0519b862a4ddb..e701ebe9a0f5a 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/Column.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/Column.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.tree.Expression; import com.google.common.collect.ImmutableSet; @@ -26,9 +26,9 @@ import java.util.Objects; import java.util.Set; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.verifier.framework.Column.Category.ARRAY; import static com.facebook.presto.verifier.framework.Column.Category.FLOATING_POINT; import static com.facebook.presto.verifier.framework.Column.Category.MAP; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerification.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerification.java index 199970fde81b4..610b61817e54b 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerification.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerification.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.tree.Query; import com.facebook.presto.verifier.checksum.ChecksumResult; import com.facebook.presto.verifier.checksum.ChecksumValidator; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerificationUtil.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerificationUtil.java index 3241234c4c705..f630f6660e560 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerificationUtil.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DataVerificationUtil.java @@ -14,8 +14,8 @@ package com.facebook.presto.verifier.framework; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.jdbc.QueryStats; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.tree.QualifiedName; import com.facebook.presto.sql.tree.ShowColumns; import com.facebook.presto.sql.tree.Statement; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DeterminismAnalyzer.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DeterminismAnalyzer.java index 4c90d3d9413da..78a59b1f22655 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DeterminismAnalyzer.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/DeterminismAnalyzer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.tree.AstVisitor; import com.facebook.presto.sql.tree.Node; import com.facebook.presto.sql.tree.Query; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java index 4eae866004497..901c997416503 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerificationFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.verifier.annotation.ForTest; import com.facebook.presto.verifier.checksum.ChecksumValidator; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierModule.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierModule.java index dc3accb91cd00..01b63bc0ca153 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierModule.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierModule.java @@ -15,13 +15,13 @@ import com.facebook.airlift.configuration.AbstractConfigurationAwareModule; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.block.BlockEncoding; +import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.CatalogManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.HandleJsonModule; -import com.facebook.presto.spi.block.BlockEncoding; -import com.facebook.presto.spi.block.BlockEncodingSerde; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.parser.SqlParserOptions; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierUtil.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierUtil.java index 87b27fe78aca3..ae4422bf7bead 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierUtil.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/framework/VerifierUtil.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.verifier.framework; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.jdbc.QueryStats; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.tree.Identifier; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/QueryRewriter.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/QueryRewriter.java index c4c2ce7ebedb2..2d97779087d1a 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/QueryRewriter.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/QueryRewriter.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.verifier.rewrite; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.MapType; -import com.facebook.presto.spi.type.RowType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; -import com.facebook.presto.spi.type.TypeSignature; -import com.facebook.presto.spi.type.TypeSignatureParameter; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.MapType; +import com.facebook.presto.common.type.RowType; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; +import com.facebook.presto.common.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.AllColumns; import com.facebook.presto.sql.tree.Cast; @@ -58,15 +58,15 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.RowType.Field; -import static com.facebook.presto.spi.type.StandardTypes.MAP; -import static com.facebook.presto.spi.type.TimeType.TIME; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.RowType.Field; +import static com.facebook.presto.common.type.StandardTypes.MAP; +import static com.facebook.presto.common.type.TimeType.TIME; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TimestampWithTimeZoneType.TIMESTAMP_WITH_TIME_ZONE; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.tree.LikeClause.PropertiesOption.INCLUDING; import static com.facebook.presto.type.UnknownType.UNKNOWN; import static com.facebook.presto.verifier.framework.QueryStage.REWRITE; diff --git a/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/VerificationQueryRewriterFactory.java b/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/VerificationQueryRewriterFactory.java index 04128ec3befc6..bfb60cf44531e 100644 --- a/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/VerificationQueryRewriterFactory.java +++ b/presto-verifier/src/main/java/com/facebook/presto/verifier/rewrite/VerificationQueryRewriterFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.rewrite; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.tree.BooleanLiteral; import com.facebook.presto.sql.tree.DoubleLiteral; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/TestingResultSetMetaData.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/TestingResultSetMetaData.java index e564ea87f0b8f..730eb98a0d3ed 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/TestingResultSetMetaData.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/TestingResultSetMetaData.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.verifier; -import com.facebook.presto.spi.type.TypeSignature; +import com.facebook.presto.common.type.TypeSignature; import com.google.common.collect.ImmutableList; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.List; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static java.util.Objects.requireNonNull; public class TestingResultSetMetaData diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/VerifierTestUtil.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/VerifierTestUtil.java index 3eff19220104c..31aff91762cfd 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/VerifierTestUtil.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/VerifierTestUtil.java @@ -15,9 +15,9 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.plugin.memory.MemoryPlugin; -import com.facebook.presto.spi.type.TypeManager; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.testing.mysql.MySqlOptions; import com.facebook.presto.testing.mysql.TestingMySqlServer; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/checksum/TestChecksumValidator.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/checksum/TestChecksumValidator.java index c43a450ad38f1..badf65e5481ac 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/checksum/TestChecksumValidator.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/checksum/TestChecksumValidator.java @@ -14,10 +14,10 @@ package com.facebook.presto.verifier.checksum; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.SqlVarbinary; +import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.SqlVarbinary; -import com.facebook.presto.spi.type.Type; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.parser.SqlParserOptions; @@ -38,12 +38,12 @@ import java.util.Map; import java.util.Optional; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.sql.SqlFormatter.formatSql; import static com.facebook.presto.sql.parser.IdentifierSymbol.AT_SIGN; import static com.facebook.presto.sql.parser.IdentifierSymbol.COLON; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java index 4e6fcd263660a..346e1df141366 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDataVerification.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.parser.SqlParserOptions; import com.facebook.presto.tests.StandaloneQueryRunner; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java index 8d1d2c79e538c..3ad3da6d6314e 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestDeterminismAnalyzer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.verifier.framework; -import com.facebook.presto.spi.type.TypeManager; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.parser.SqlParserOptions; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestLimitQueryDeterminismAnalyzer.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestLimitQueryDeterminismAnalyzer.java index 8133ed59e4ea9..995f4ab152fe4 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestLimitQueryDeterminismAnalyzer.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/framework/TestLimitQueryDeterminismAnalyzer.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Optional; -import static com.facebook.presto.spi.type.StandardTypes.INTEGER; +import static com.facebook.presto.common.type.StandardTypes.INTEGER; import static com.facebook.presto.sql.SqlFormatter.formatSql; import static com.facebook.presto.sql.parser.IdentifierSymbol.AT_SIGN; import static com.facebook.presto.sql.parser.IdentifierSymbol.COLON; diff --git a/presto-verifier/src/test/java/com/facebook/presto/verifier/resolver/TestTooManyOpenPartitionsFailureResolver.java b/presto-verifier/src/test/java/com/facebook/presto/verifier/resolver/TestTooManyOpenPartitionsFailureResolver.java index e03aaf3d4b227..9227965ad4341 100644 --- a/presto-verifier/src/test/java/com/facebook/presto/verifier/resolver/TestTooManyOpenPartitionsFailureResolver.java +++ b/presto-verifier/src/test/java/com/facebook/presto/verifier/resolver/TestTooManyOpenPartitionsFailureResolver.java @@ -35,8 +35,8 @@ import java.util.Optional; import java.util.concurrent.atomic.AtomicReference; +import static com.facebook.presto.common.type.StandardTypes.VARCHAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_TOO_MANY_OPEN_PARTITIONS; -import static com.facebook.presto.spi.type.StandardTypes.VARCHAR; import static com.facebook.presto.sql.parser.IdentifierSymbol.AT_SIGN; import static com.facebook.presto.sql.parser.IdentifierSymbol.COLON; import static com.facebook.presto.sql.parser.ParsingOptions.DecimalLiteralTreatment.AS_DOUBLE; From 29acdbaff128fff2de185c28fb26031be1d88019 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 28 Apr 2020 23:46:09 -0700 Subject: [PATCH 070/129] Refactor predicate package into presto-common --- .../presto/accumulo/AccumuloClient.java | 8 +- .../presto/accumulo/AccumuloSplitManager.java | 6 +- .../presto/accumulo/io/AccumuloPageSink.java | 2 +- .../model/AccumuloColumnConstraint.java | 2 +- .../model/AccumuloTableLayoutHandle.java | 2 +- .../facebook/presto/atop/AtopMetadata.java | 2 +- .../facebook/presto/atop/AtopPageSource.java | 4 +- .../presto/atop/AtopSplitManager.java | 6 +- .../presto/atop/AtopTableLayoutHandle.java | 2 +- .../presto/plugin/jdbc/BaseJdbcClient.java | 2 +- .../presto/plugin/jdbc/JdbcClient.java | 2 +- .../presto/plugin/jdbc/JdbcPageSink.java | 2 +- .../presto/plugin/jdbc/JdbcSplit.java | 2 +- .../plugin/jdbc/JdbcTableLayoutHandle.java | 2 +- .../presto/plugin/jdbc/QueryBuilder.java | 6 +- .../plugin/jdbc/TestJdbcQueryBuilder.java | 8 +- .../jdbc/TestJdbcRecordSetProvider.java | 8 +- .../presto/plugin/jdbc/TestJdbcSplit.java | 2 +- .../presto/plugin/jdbc/TestingDatabase.java | 2 +- .../optimization/TestJdbcComputePushdown.java | 2 +- .../presto/benchmark/HandTpchQuery1.java | 4 +- .../presto/benchmark/HandTpchQuery6.java | 2 +- .../BenchmarkDecimalAggregation.java | 2 +- .../benchmark/BenchmarkInequalityJoin.java | 2 +- .../benchmark/MemoryLocalQueryRunner.java | 2 +- .../plugin/blackhole/BlackHolePageSink.java | 2 +- .../plugin/blackhole/BlackHolePageSource.java | 2 +- .../BlackHolePageSourceProvider.java | 2 +- ...assandraClusteringPredicatesExtractor.java | 6 +- .../presto/cassandra/CassandraMetadata.java | 2 +- .../presto/cassandra/CassandraPageSink.java | 2 +- .../presto/cassandra/CassandraPartition.java | 2 +- .../cassandra/CassandraPartitionManager.java | 6 +- .../cassandra/CassandraPartitionResult.java | 2 +- .../cassandra/CassandraRecordCursor.java | 2 +- .../presto/cassandra/CassandraType.java | 2 +- .../cassandra/NativeCassandraSession.java | 4 +- ...assandraClusteringPredicatesExtractor.java | 4 +- .../com/facebook/presto/common}/Page.java | 2 +- .../facebook/presto/common}/PageBuilder.java | 2 +- .../presto/common}/predicate/AllOrNone.java | 2 +- .../common}/predicate/AllOrNoneValueSet.java | 7 +- .../common}/predicate/DiscreteValues.java | 2 +- .../presto/common}/predicate/Domain.java | 8 +- .../common}/predicate/EquatableValueSet.java | 9 +- .../presto/common}/predicate/Marker.java | 13 +- .../common}/predicate/NullableValue.java | 4 +- .../presto/common}/predicate/Range.java | 12 +- .../presto/common}/predicate/Ranges.java | 2 +- .../common}/predicate/SortedRangeSet.java | 8 +- .../presto/common}/predicate/TupleDomain.java | 27 +- .../presto/common}/predicate/ValueSet.java | 6 +- .../common}/predicate/ValuesProcessor.java | 2 +- .../presto/common}/relation/Predicate.java | 4 +- .../com/facebook/presto/common}/TestPage.java | 2 +- .../predicate/BenchmarkSortedRangeSet.java | 2 +- .../predicate/TestAllOrNoneValueSet.java | 2 +- .../presto/common}/predicate/TestDomain.java | 2 +- .../predicate/TestEquatableValueSet.java | 354 ++++++++++++++++++ .../presto/common}/predicate/TestMarker.java | 2 +- .../presto/common}/predicate/TestRange.java | 2 +- .../common}/predicate/TestSortedRangeSet.java | 2 +- .../presto/druid/DruidBrokerPageSource.java | 4 +- .../presto/druid/DruidSegmentPageSource.java | 2 +- .../presto/druid/DruidTableLayoutHandle.java | 2 +- .../ElasticsearchQueryBuilder.java | 6 +- .../elasticsearch/ElasticsearchSplit.java | 2 +- .../ElasticsearchTableLayoutHandle.java | 2 +- .../plugin/geospatial/BingTileFunctions.java | 2 +- .../geospatial/TestBingTileFunctions.java | 2 +- .../geospatial/TestSpatialJoinOperator.java | 2 +- ...patialPartitioningInternalAggregation.java | 2 +- .../AbstractTestGeoAggregationFunctions.java | 2 +- .../hive/metastore/CachingHiveMetastore.java | 2 +- .../hive/metastore/ExtendedHiveMetastore.java | 2 +- .../presto/hive/metastore/MetastoreUtil.java | 4 +- .../hive/metastore/PartitionFilter.java | 2 +- .../metastore/RecordingHiveMetastore.java | 2 +- .../SemiTransactionalHiveMetastore.java | 2 +- .../presto/hive/metastore/Statistics.java | 2 +- .../alluxio/AlluxioHiveMetastore.java | 2 +- .../metastore/file/FileHiveMetastore.java | 2 +- .../metastore/glue/GlueHiveMetastore.java | 2 +- .../thrift/BridgingHiveMetastore.java | 2 +- .../hive/metastore/thrift/HiveMetastore.java | 2 +- .../metastore/thrift/ThriftHiveMetastore.java | 2 +- .../metastore/TestRecordingHiveMetastore.java | 2 +- .../metastore/UnimplementedHiveMetastore.java | 2 +- .../thrift/InMemoryHiveMetastore.java | 2 +- .../hive/BackgroundHiveSplitLoader.java | 2 +- .../presto/hive/FilteringPageSource.java | 6 +- .../hive/GenericHiveRecordCursorProvider.java | 2 +- .../hive/HiveBatchPageSourceFactory.java | 2 +- .../presto/hive/HiveBucketFunction.java | 2 +- .../facebook/presto/hive/HiveBucketing.java | 10 +- .../presto/hive/HiveCoercionRecordCursor.java | 2 +- .../facebook/presto/hive/HiveFileWriter.java | 2 +- .../facebook/presto/hive/HiveMetadata.java | 10 +- .../facebook/presto/hive/HivePageSink.java | 2 +- .../facebook/presto/hive/HivePageSource.java | 2 +- .../presto/hive/HivePageSourceProvider.java | 2 +- .../facebook/presto/hive/HivePartition.java | 2 +- .../presto/hive/HivePartitionManager.java | 6 +- .../presto/hive/HivePartitionResult.java | 2 +- .../presto/hive/HiveRecordCursorProvider.java | 2 +- .../hive/HiveSelectivePageSourceFactory.java | 2 +- .../presto/hive/HiveSplitManager.java | 4 +- .../presto/hive/HiveTableLayoutHandle.java | 2 +- .../com/facebook/presto/hive/HiveUtil.java | 2 +- .../com/facebook/presto/hive/HiveWriter.java | 2 +- .../presto/hive/HiveWriterFactory.java | 2 +- .../presto/hive/IonSqlQueryBuilder.java | 6 +- .../facebook/presto/hive/OrcFileWriter.java | 2 +- .../presto/hive/RcFileFileWriter.java | 2 +- .../presto/hive/RecordFileWriter.java | 2 +- .../hive/S3SelectRecordCursorProvider.java | 2 +- .../presto/hive/SortingFileWriter.java | 2 +- .../hive/orc/DwrfBatchPageSourceFactory.java | 2 +- .../orc/DwrfSelectivePageSourceFactory.java | 2 +- .../presto/hive/orc/OrcBatchPageSource.java | 2 +- .../hive/orc/OrcBatchPageSourceFactory.java | 2 +- .../hive/orc/OrcSelectivePageSource.java | 2 +- .../orc/OrcSelectivePageSourceFactory.java | 6 +- .../hive/orc/TupleDomainFilterCache.java | 2 +- .../hive/pagefile/PageFilePageReader.java | 2 +- .../hive/pagefile/PageFilePageSource.java | 2 +- .../pagefile/PageFilePageSourceFactory.java | 2 +- .../presto/hive/pagefile/PageFileWriter.java | 2 +- .../hive/parquet/ParquetPageSource.java | 2 +- .../parquet/ParquetPageSourceFactory.java | 4 +- .../presto/hive/rcfile/RcFilePageSource.java | 2 +- .../hive/rcfile/RcFilePageSourceFactory.java | 2 +- .../presto/hive/rule/HiveFilterPushdown.java | 10 +- .../MetastoreHiveStatisticsProvider.java | 2 +- .../hive/util/InternalHiveSplitFactory.java | 2 +- .../presto/hive/util/MergingPageIterator.java | 4 +- .../facebook/presto/hive/util/SortBuffer.java | 4 +- .../presto/hive/util/TempFileReader.java | 2 +- .../presto/hive/util/TempFileWriter.java | 2 +- .../presto/hive/AbstractTestHiveClient.java | 14 +- .../hive/AbstractTestHiveFileFormats.java | 4 +- .../hive/TestBackgroundHiveSplitLoader.java | 2 +- .../presto/hive/TestDomainTranslator.java | 10 +- .../presto/hive/TestHiveBucketing.java | 2 +- .../presto/hive/TestHiveFileFormats.java | 2 +- .../hive/TestHiveIntegrationSmokeTest.java | 2 +- .../presto/hive/TestHiveLogicalPlanner.java | 12 +- .../presto/hive/TestHiveMetadata.java | 2 +- .../presto/hive/TestHivePageSink.java | 6 +- .../presto/hive/TestHivePartitionManager.java | 4 +- .../presto/hive/TestIonSqlQueryBuilder.java | 12 +- .../TestOrcBatchPageSourceMemoryTracking.java | 4 +- ...TestingSemiTransactionalHiveMetastore.java | 2 +- .../presto/hive/benchmark/FileFormat.java | 4 +- .../presto/hive/benchmark/FormatWriter.java | 2 +- .../benchmark/HiveFileFormatBenchmark.java | 4 +- .../presto/hive/parquet/ParquetTester.java | 4 +- .../predicate/TestParquetPredicateUtils.java | 6 +- .../hive/util/TestMergingPageIterator.java | 4 +- .../presto/jdbc/TestJdbcConnection.java | 2 +- .../presto/connector/jmx/JmxSplitManager.java | 6 +- .../connector/jmx/JmxTableLayoutHandle.java | 2 +- .../connector/jmx/TestJmxSplitManager.java | 4 +- .../facebook/presto/kafka/KafkaMetadata.java | 6 +- .../presto/kudu/KuduClientSession.java | 18 +- .../facebook/presto/kudu/KuduPageSink.java | 2 +- .../presto/kudu/KuduTableLayoutHandle.java | 2 +- .../presto/kudu/KuduUpdatablePageSource.java | 2 +- .../localfile/LocalFileRecordCursor.java | 4 +- .../presto/localfile/LocalFileRecordSet.java | 2 +- .../presto/localfile/LocalFileSplit.java | 2 +- .../localfile/LocalFileSplitManager.java | 2 +- .../localfile/LocalFileTableLayoutHandle.java | 2 +- .../localfile/TestLocalFileRecordSet.java | 2 +- .../presto/localfile/TestLocalFileSplit.java | 2 +- .../presto/GroupByHashPageIndexer.java | 2 +- .../presto/GroupByHashPageIndexerFactory.java | 2 +- .../facebook/presto/PagesIndexPageSorter.java | 2 +- .../InformationSchemaMetadata.java | 8 +- .../InformationSchemaPageSourceProvider.java | 2 +- .../system/AbstractPropertiesSystemTable.java | 2 +- .../connector/system/CatalogSystemTable.java | 2 +- .../connector/system/NodeSystemTable.java | 2 +- .../connector/system/QuerySystemTable.java | 2 +- .../system/SystemPageSourceProvider.java | 6 +- .../presto/connector/system/SystemSplit.java | 2 +- .../connector/system/SystemSplitManager.java | 2 +- .../system/SystemTableLayoutHandle.java | 2 +- .../connector/system/TaskSystemTable.java | 2 +- .../system/TransactionsSystemTable.java | 2 +- .../system/jdbc/AttributeJdbcTable.java | 2 +- .../system/jdbc/CatalogJdbcTable.java | 2 +- .../system/jdbc/ColumnJdbcTable.java | 2 +- .../connector/system/jdbc/FilterUtil.java | 4 +- .../system/jdbc/ProcedureColumnJdbcTable.java | 2 +- .../system/jdbc/ProcedureJdbcTable.java | 2 +- .../system/jdbc/PseudoColumnJdbcTable.java | 2 +- .../system/jdbc/SchemaJdbcTable.java | 2 +- .../system/jdbc/SuperTableJdbcTable.java | 2 +- .../system/jdbc/SuperTypeJdbcTable.java | 2 +- .../connector/system/jdbc/TableJdbcTable.java | 2 +- .../system/jdbc/TableTypeJdbcTable.java | 2 +- .../connector/system/jdbc/TypesJdbcTable.java | 2 +- .../connector/system/jdbc/UdtJdbcTable.java | 2 +- .../execution/buffer/PageSplitterUtil.java | 2 +- .../execution/scheduler/TableWriteInfo.java | 2 +- .../presto/metadata/InternalTable.java | 4 +- .../facebook/presto/metadata/Metadata.java | 2 +- .../presto/metadata/MetadataManager.java | 2 +- .../presto/metadata/ResolvedIndex.java | 2 +- .../facebook/presto/metadata/TableLayout.java | 2 +- .../presto/metadata/TableLayoutResult.java | 4 +- .../presto/operator/AggregationOperator.java | 4 +- .../facebook/presto/operator/Aggregator.java | 2 +- .../presto/operator/ArrayPositionLinks.java | 2 +- .../operator/AssignUniqueIdOperator.java | 2 +- .../presto/operator/BigintGroupByHash.java | 4 +- .../operator/BucketPartitionFunction.java | 2 +- .../facebook/presto/operator/ChannelSet.java | 2 +- .../presto/operator/DeleteOperator.java | 2 +- .../presto/operator/DevNullOperator.java | 2 +- .../operator/DistinctLimitOperator.java | 2 +- .../com/facebook/presto/operator/Driver.java | 2 +- .../presto/operator/EmptyLookupSource.java | 4 +- .../operator/EnforceSingleRowOperator.java | 2 +- .../presto/operator/ExchangeOperator.java | 2 +- .../operator/ExplainAnalyzeOperator.java | 2 +- .../operator/FilterAndProjectOperator.java | 2 +- .../presto/operator/FinishedOperator.java | 2 +- .../facebook/presto/operator/GroupByHash.java | 4 +- .../presto/operator/GroupIdOperator.java | 2 +- .../presto/operator/GroupedTopNBuilder.java | 4 +- .../operator/HashAggregationOperator.java | 4 +- .../presto/operator/HashBuilderOperator.java | 2 +- .../presto/operator/HashGenerator.java | 2 +- .../presto/operator/HashSemiJoinOperator.java | 2 +- .../operator/InternalJoinFilterFunction.java | 2 +- .../operator/InterpretedHashGenerator.java | 2 +- .../presto/operator/JoinFilterFunction.java | 2 +- .../facebook/presto/operator/JoinHash.java | 4 +- .../presto/operator/JoinHashSupplier.java | 2 +- .../facebook/presto/operator/JoinProbe.java | 2 +- .../facebook/presto/operator/JoinUtils.java | 2 +- .../presto/operator/LimitOperator.java | 2 +- .../presto/operator/LookupJoinOperator.java | 2 +- .../operator/LookupJoinPageBuilder.java | 4 +- .../presto/operator/LookupOuterOperator.java | 4 +- .../presto/operator/LookupSource.java | 4 +- .../presto/operator/MarkDistinctHash.java | 2 +- .../presto/operator/MarkDistinctOperator.java | 2 +- .../presto/operator/MergeHashSort.java | 4 +- .../presto/operator/MergeOperator.java | 2 +- .../operator/MetadataDeleteOperator.java | 4 +- .../operator/MultiChannelGroupByHash.java | 4 +- .../operator/NestedLoopBuildOperator.java | 2 +- .../operator/NestedLoopJoinOperator.java | 2 +- .../presto/operator/NestedLoopJoinPages.java | 2 +- .../operator/NestedLoopJoinPagesBuilder.java | 2 +- .../presto/operator/NoChannelGroupByHash.java | 4 +- .../facebook/presto/operator/Operator.java | 2 +- .../presto/operator/OperatorContext.java | 2 +- .../presto/operator/OrderByOperator.java | 4 +- .../presto/operator/OuterLookupSource.java | 4 +- .../operator/OuterPositionIterator.java | 2 +- .../presto/operator/OutputFactory.java | 2 +- .../presto/operator/PageSourceOperator.java | 2 +- .../operator/PageWithPositionComparator.java | 2 +- .../facebook/presto/operator/PagesHash.java | 4 +- .../presto/operator/PagesHashStrategy.java | 4 +- .../facebook/presto/operator/PagesIndex.java | 4 +- .../presto/operator/PagesRTreeIndex.java | 4 +- .../presto/operator/PagesSpatialIndex.java | 4 +- .../presto/operator/PartitionFunction.java | 2 +- .../operator/PartitionedLookupSource.java | 4 +- .../PartitionedLookupSourceFactory.java | 4 +- .../presto/operator/PositionLinks.java | 2 +- .../operator/PrecomputedHashGenerator.java | 2 +- .../presto/operator/RowComparator.java | 2 +- .../presto/operator/RowNumberOperator.java | 4 +- .../ScanFilterAndProjectOperator.java | 4 +- .../presto/operator/SetBuilderOperator.java | 2 +- .../SimplePageWithPositionComparator.java | 2 +- .../operator/SimplePagesHashStrategy.java | 4 +- .../presto/operator/SortedPositionLinks.java | 2 +- .../operator/SpatialIndexBuilderOperator.java | 2 +- .../presto/operator/SpatialJoinOperator.java | 4 +- .../operator/StandardJoinFilterFunction.java | 2 +- .../operator/StatisticsWriterOperator.java | 4 +- .../StreamingAggregationOperator.java | 4 +- .../presto/operator/TableFinishOperator.java | 4 +- .../presto/operator/TableScanOperator.java | 2 +- .../operator/TableWriterMergeOperator.java | 4 +- .../presto/operator/TableWriterOperator.java | 2 +- .../presto/operator/TableWriterUtils.java | 2 +- .../presto/operator/TaskOutputOperator.java | 2 +- .../presto/operator/TopNOperator.java | 2 +- .../operator/TopNRowNumberOperator.java | 2 +- .../presto/operator/ValuesOperator.java | 2 +- .../presto/operator/WindowOperator.java | 4 +- ...stractGroupCollectionAggregationState.java | 2 +- .../operator/aggregation/Accumulator.java | 2 +- .../aggregation/AccumulatorCompiler.java | 2 +- .../aggregation/AggregationUtils.java | 2 +- .../GenericAccumulatorFactory.java | 2 +- .../aggregation/GroupedAccumulator.java | 2 +- .../arrayagg/GroupArrayAggregationState.java | 2 +- .../builder/HashAggregationBuilder.java | 2 +- .../InMemoryHashAggregationBuilder.java | 4 +- .../MergingHashAggregationBuilder.java | 2 +- .../SpillableHashAggregationBuilder.java | 2 +- .../GroupedMultimapAggregationState.java | 2 +- .../operator/exchange/BroadcastExchanger.java | 2 +- .../operator/exchange/LocalExchangeSink.java | 2 +- .../exchange/LocalExchangeSinkOperator.java | 2 +- .../exchange/LocalExchangeSource.java | 2 +- .../exchange/LocalExchangeSourceOperator.java | 2 +- .../operator/exchange/LocalExchanger.java | 2 +- .../exchange/LocalMergeSourceOperator.java | 2 +- .../exchange/LocalPartitionGenerator.java | 2 +- .../exchange/PageChannelSelector.java | 2 +- .../operator/exchange/PageReference.java | 2 +- .../exchange/PartitioningExchanger.java | 2 +- .../exchange/PassthroughExchanger.java | 2 +- .../operator/exchange/RandomExchanger.java | 2 +- .../index/DynamicTupleFilterFactory.java | 2 +- .../IndexBuildDriverFactoryProvider.java | 2 +- .../presto/operator/index/IndexLoader.java | 4 +- .../operator/index/IndexLookupSource.java | 4 +- .../presto/operator/index/IndexSnapshot.java | 4 +- .../operator/index/IndexSnapshotBuilder.java | 4 +- .../operator/index/IndexSourceOperator.java | 2 +- .../presto/operator/index/IndexedData.java | 4 +- .../presto/operator/index/PageBuffer.java | 2 +- .../operator/index/PageBufferOperator.java | 2 +- .../presto/operator/index/PageRecordSet.java | 2 +- .../index/PagesIndexBuilderOperator.java | 2 +- .../operator/index/StreamingIndexedData.java | 4 +- .../operator/index/TuplePageFilter.java | 2 +- .../index/UnloadedIndexKeyRecordSet.java | 2 +- .../presto/operator/index/UpdateRequest.java | 2 +- .../project/ConstantPageProjection.java | 2 +- .../operator/project/CursorProcessor.java | 2 +- .../project/DictionaryAwarePageFilter.java | 2 +- .../DictionaryAwarePageProjection.java | 2 +- .../project/GeneratedPageProjection.java | 2 +- .../operator/project/InputChannels.java | 2 +- .../operator/project/InputPageProjection.java | 2 +- .../operator/project/MergingPageOutput.java | 4 +- .../presto/operator/project/PageFilter.java | 2 +- .../operator/project/PageProcessor.java | 2 +- .../operator/project/PageProjection.java | 2 +- .../project/PageProjectionWithOutputs.java | 2 +- .../OptimizedPartitionedOutputOperator.java | 2 +- .../PartitionedOutputOperator.java | 4 +- .../operator/scalar/ArrayConcatFunction.java | 2 +- .../presto/operator/scalar/ArrayJoin.java | 2 +- .../operator/scalar/ArrayRemoveFunction.java | 2 +- .../operator/scalar/ArrayReverseFunction.java | 2 +- .../operator/scalar/ArrayShuffleFunction.java | 2 +- .../scalar/ArraySortComparatorFunction.java | 2 +- .../scalar/ArrayTransformFunction.java | 2 +- .../JoniRegexpReplaceLambdaFunction.java | 2 +- .../operator/scalar/MapConcatFunction.java | 2 +- .../operator/scalar/MapConstructor.java | 2 +- .../operator/scalar/MapEntriesFunction.java | 2 +- .../operator/scalar/MapFilterFunction.java | 2 +- .../scalar/MapFromEntriesFunction.java | 2 +- .../scalar/MapTransformKeyFunction.java | 2 +- .../scalar/MapTransformValueFunction.java | 2 +- .../operator/scalar/MapZipWithFunction.java | 2 +- .../scalar/MultimapFromEntriesFunction.java | 2 +- .../Re2JRegexpReplaceLambdaFunction.java | 2 +- .../operator/scalar/SplitToMapFunction.java | 2 +- .../scalar/SplitToMultimapFunction.java | 2 +- .../operator/scalar/ZipWithFunction.java | 2 +- .../operator/unnest/UnnestOperator.java | 2 +- .../operator/window/WindowPartition.java | 2 +- .../presto/server/PagesResponseWriter.java | 2 +- .../facebook/presto/server/TaskResource.java | 2 +- .../presto/server/protocol/Query.java | 2 +- .../presto/server/protocol/RowIterable.java | 2 +- .../spiller/FileSingleStreamSpiller.java | 2 +- .../spiller/GenericPartitioningSpiller.java | 4 +- .../presto/spiller/GenericSpiller.java | 2 +- .../presto/spiller/PartitioningSpiller.java | 2 +- .../presto/spiller/SingleStreamSpiller.java | 2 +- .../com/facebook/presto/spiller/Spiller.java | 2 +- .../presto/split/EmptySplitPageSource.java | 2 +- .../presto/split/MappedPageSource.java | 2 +- .../sql/gen/CursorProcessorCompiler.java | 2 +- .../facebook/presto/sql/gen/JoinCompiler.java | 4 +- .../sql/gen/JoinFilterFunctionCompiler.java | 2 +- .../presto/sql/gen/OrderingCompiler.java | 2 +- .../presto/sql/gen/PageFunctionCompiler.java | 2 +- .../gen/RowExpressionPredicateCompiler.java | 4 +- .../planner/ExpressionDomainTranslator.java | 18 +- .../sql/planner/LocalExecutionPlanner.java | 4 +- .../presto/sql/planner/LogicalPlanner.java | 2 +- .../presto/sql/planner/PlanFragmenter.java | 2 +- .../presto/sql/planner/QueryPlanner.java | 2 +- .../presto/sql/planner/RelationPlanner.java | 2 +- .../sql/planner/SystemPartitioningHandle.java | 2 +- .../iterative/rule/ExtractSpatialJoins.java | 2 +- .../iterative/rule/PickTableLayout.java | 4 +- .../rule/PruneIndexSourceColumns.java | 2 +- .../optimizations/IndexJoinOptimizer.java | 2 +- .../optimizations/MetadataQueryOptimizer.java | 4 +- .../optimizations/PropertyDerivations.java | 20 +- .../StreamPropertyDerivations.java | 2 +- .../optimizations/WindowFilterPushDown.java | 10 +- .../sql/planner/plan/IndexSourceNode.java | 2 +- .../planner/planPrinter/IOPlanPrinter.java | 10 +- .../sql/planner/planPrinter/PlanPrinter.java | 8 +- .../RowExpressionDomainTranslator.java | 18 +- .../presto/testing/MaterializedResult.java | 4 +- .../presto/testing/NullOutputOperator.java | 2 +- .../presto/testing/PageConsumerOperator.java | 2 +- .../presto/testing/TestingMetadata.java | 2 +- .../testing/TestingPageSinkProvider.java | 2 +- .../com/facebook/presto/type/TypeUtils.java | 2 +- .../presto/util/MergeSortedPages.java | 4 +- .../presto/BenchmarkPagesIndexPageSorter.java | 2 +- .../com/facebook/presto/RowPageBuilder.java | 2 +- .../com/facebook/presto/RowPagesBuilder.java | 2 +- .../facebook/presto/SequencePageBuilder.java | 2 +- .../presto/TestPagesIndexPageSorter.java | 4 +- .../presto/block/TestBlockBuilder.java | 2 +- .../connector/system/TestSystemSplit.java | 2 +- .../presto/cost/TestCostCalculator.java | 2 +- .../execution/MockRemoteTaskFactory.java | 2 +- .../presto/execution/TaskTestUtils.java | 2 +- .../execution/TestPageSplitterUtil.java | 2 +- .../execution/TestSqlTaskExecution.java | 2 +- .../execution/TestingPageSourceProvider.java | 2 +- .../execution/buffer/BufferTestUtils.java | 2 +- .../buffer/TestArbitraryOutputBuffer.java | 2 +- .../buffer/TestBroadcastOutputBuffer.java | 2 +- .../execution/buffer/TestClientBuffer.java | 2 +- .../execution/buffer/TestPagesSerde.java | 2 +- .../buffer/TestPartitionedOutputBuffer.java | 2 +- .../buffer/TestingPagesSerdeFactory.java | 2 +- .../TestPhasedExecutionSchedule.java | 2 +- .../TestSourcePartitionedScheduler.java | 2 +- .../presto/memory/TestMemoryPools.java | 2 +- .../presto/metadata/AbstractMockMetadata.java | 2 +- .../TestInformationSchemaMetadata.java | 6 +- .../metadata/TestTableLayoutResult.java | 8 +- .../presto/operator/BenchmarkGroupByHash.java | 4 +- .../operator/BenchmarkGroupedTopNBuilder.java | 4 +- ...kHashAndStreamingAggregationOperators.java | 2 +- .../BenchmarkHashBuildAndJoinOperators.java | 2 +- .../operator/BenchmarkUnnestOperator.java | 2 +- .../operator/BenchmarkWindowOperator.java | 2 +- .../operator/GroupByHashYieldAssertion.java | 2 +- .../MockExchangeRequestProcessor.java | 2 +- .../presto/operator/OperatorAssertion.java | 2 +- .../presto/operator/PageAssertions.java | 4 +- .../operator/TestAggregationOperator.java | 2 +- .../operator/TestColumnarPageProcessor.java | 2 +- .../operator/TestDistinctLimitOperator.java | 2 +- .../facebook/presto/operator/TestDriver.java | 2 +- .../presto/operator/TestExchangeClient.java | 2 +- .../presto/operator/TestExchangeOperator.java | 2 +- .../TestFilterAndProjectOperator.java | 2 +- .../presto/operator/TestGroupByHash.java | 4 +- .../presto/operator/TestGroupIdOperator.java | 2 +- .../operator/TestGroupedTopNBuilder.java | 2 +- .../operator/TestHashAggregationOperator.java | 2 +- .../presto/operator/TestHashJoinOperator.java | 2 +- .../operator/TestHashSemiJoinOperator.java | 2 +- .../presto/operator/TestLimitOperator.java | 2 +- .../operator/TestLookupJoinPageBuilder.java | 4 +- .../operator/TestMarkDistinctOperator.java | 2 +- .../presto/operator/TestMergeHashSort.java | 2 +- .../presto/operator/TestMergeOperator.java | 2 +- .../operator/TestNestedLoopBuildOperator.java | 2 +- .../operator/TestNestedLoopJoinOperator.java | 2 +- .../operator/TestOperatorAssertion.java | 2 +- .../presto/operator/TestOrderByOperator.java | 2 +- .../presto/operator/TestPageBufferClient.java | 2 +- .../presto/operator/TestPagesIndex.java | 2 +- .../TestPartitionedOutputOperator.java | 2 +- .../presto/operator/TestPositionLinks.java | 2 +- .../operator/TestRowNumberOperator.java | 2 +- .../TestScanFilterAndProjectOperator.java | 2 +- .../TestStreamingAggregationOperator.java | 2 +- .../operator/TestTableWriterOperator.java | 2 +- .../presto/operator/TestTopNOperator.java | 2 +- .../operator/TestTopNRowNumberOperator.java | 2 +- .../presto/operator/TestWindowOperator.java | 2 +- .../TestingExchangeHttpClientHandler.java | 2 +- .../presto/operator/TestingTaskBuffer.java | 2 +- .../AbstractTestApproximateCountDistinct.java | 2 +- .../aggregation/AggregationTestUtils.java | 2 +- .../BenchmarkArrayAggregation.java | 2 +- .../BenchmarkGroupedTypedHistogram.java | 2 +- .../TestDoubleHistogramAggregation.java | 4 +- .../TestMergeStatisticalDigestFunction.java | 2 +- .../TestMultimapAggAggregation.java | 2 +- ...TestQuantileDigestAggregationFunction.java | 2 +- .../TestRealHistogramAggregation.java | 4 +- ...tStatisticalDigestAggregationFunction.java | 2 +- .../TestTDigestAggregationFunction.java | 2 +- .../operator/aggregation/TestTypedSet.java | 2 +- .../AggregationTestInput.java | 2 +- .../AggregationTestInputBuilder.java | 2 +- .../GroupByAggregationTestUtils.java | 2 +- .../minmaxby/TestMinMaxByNAggregation.java | 2 +- .../operator/exchange/TestLocalExchange.java | 2 +- .../index/TestTupleFilterProcessor.java | 2 +- .../TestDictionaryAwarePageFilter.java | 2 +- .../TestDictionaryAwarePageProjection.java | 2 +- .../project/TestMergingPageOutput.java | 2 +- .../operator/project/TestPageProcessor.java | 2 +- .../BenchmarkPartitionedOutputOperator.java | 2 +- ...estOptimizedPartitionedOutputOperator.java | 2 +- .../scalar/BenchmarkArrayDistinct.java | 2 +- .../operator/scalar/BenchmarkArrayFilter.java | 2 +- .../BenchmarkArrayHashCodeOperator.java | 2 +- .../scalar/BenchmarkArrayIntersect.java | 2 +- .../operator/scalar/BenchmarkArrayJoin.java | 2 +- .../operator/scalar/BenchmarkArraySort.java | 2 +- .../scalar/BenchmarkArraySubscript.java | 2 +- .../scalar/BenchmarkArrayTransform.java | 4 +- .../scalar/BenchmarkEqualsOperator.java | 4 +- .../scalar/BenchmarkJsonToArrayCast.java | 2 +- .../scalar/BenchmarkJsonToMapCast.java | 2 +- .../operator/scalar/BenchmarkMapConcat.java | 2 +- .../scalar/BenchmarkMapSubscript.java | 2 +- .../scalar/BenchmarkMapToMapCast.java | 2 +- .../scalar/BenchmarkRowToRowCast.java | 2 +- .../scalar/BenchmarkTransformKey.java | 2 +- .../scalar/BenchmarkTransformValue.java | 2 +- .../operator/scalar/FunctionAssertions.java | 4 +- .../scalar/TestPageProcessorCompiler.java | 2 +- .../spiller/BenchmarkBinaryFileSpiller.java | 4 +- .../operator/unnest/TestUnnestOperator.java | 2 +- .../operator/unnest/TestUnnesterUtil.java | 4 +- .../presto/spiller/TestBinaryFileSpiller.java | 2 +- .../spiller/TestFileSingleStreamSpiller.java | 2 +- .../TestFileSingleStreamSpillerFactory.java | 2 +- .../TestGenericPartitioningSpiller.java | 2 +- .../spiller/TestSpillCipherPagesSerde.java | 2 +- .../sql/gen/BenchmarkPageProcessor.java | 4 +- .../sql/gen/CommonSubExpressionBenchmark.java | 2 +- .../sql/gen/InCodeGeneratorBenchmark.java | 4 +- .../sql/gen/PageProcessorBenchmark.java | 4 +- .../presto/sql/gen/TestJoinCompiler.java | 4 +- .../sql/gen/TestPageFunctionCompiler.java | 2 +- .../TestRowExpressionPredicateCompiler.java | 4 +- .../TestEffectivePredicateExtractor.java | 4 +- .../TestExpressionDomainTranslator.java | 12 +- .../sql/planner/TestLogicalPlanner.java | 2 +- .../TestRowExpressionDomainTranslator.java | 12 +- .../TestRowExpressionPredicateExtractor.java | 4 +- .../presto/sql/planner/TestTypeValidator.java | 2 +- .../assertions/IndexSourceMatcher.java | 2 +- .../planner/assertions/PlanMatchPattern.java | 2 +- .../planner/assertions/TableScanMatcher.java | 2 +- .../presto/sql/planner/assertions/Util.java | 4 +- .../iterative/rule/TestPickTableLayout.java | 6 +- .../rule/TestPruneIndexSourceColumns.java | 6 +- .../iterative/rule/test/PlanBuilder.java | 2 +- .../TestConnectorOptimization.java | 2 +- ...ValidateAggregationsWithDefaultValues.java | 2 +- .../TestValidateStreamingAggregations.java | 2 +- .../type/BenchmarkDecimalOperators.java | 2 +- .../presto/util/PagesSortBenchmark.java | 2 +- .../presto/util/TestMergeSortedPages.java | 2 +- .../presto/plugin/memory/MemoryMetadata.java | 2 +- .../plugin/memory/MemoryPageSinkProvider.java | 2 +- .../memory/MemoryPageSourceProvider.java | 2 +- .../plugin/memory/MemoryPagesStore.java | 2 +- .../plugin/memory/TestMemoryPagesStore.java | 2 +- .../presto/ml/MLFeaturesFunctions.java | 2 +- .../ml/TestEvaluateClassifierPredictions.java | 2 +- .../presto/ml/TestLearnAggregations.java | 2 +- .../presto/mongodb/MongoMetadata.java | 2 +- .../presto/mongodb/MongoPageSink.java | 2 +- .../presto/mongodb/MongoPageSource.java | 4 +- .../facebook/presto/mongodb/MongoSession.java | 6 +- .../facebook/presto/mongodb/MongoSplit.java | 2 +- .../mongodb/MongoTableLayoutHandle.java | 2 +- .../presto/mongodb/TestMongoSession.java | 16 +- .../presto/mongodb/TestMongoSplit.java | 2 +- .../presto/orc/AbstractOrcRecordReader.java | 2 +- .../facebook/presto/orc/FilterFunction.java | 4 +- .../presto/orc/OrcBatchRecordReader.java | 2 +- .../presto/orc/OrcSelectiveRecordReader.java | 2 +- .../presto/orc/OrcWriteValidation.java | 2 +- .../com/facebook/presto/orc/OrcWriter.java | 2 +- .../presto/orc/TupleDomainFilterUtils.java | 10 +- .../presto/orc/TupleDomainOrcPredicate.java | 8 +- .../orc/BenchmarkSelectiveStreamReaders.java | 2 +- .../com/facebook/presto/orc/OrcTester.java | 2 +- .../presto/orc/TestFilterFunction.java | 4 +- .../orc/TestMapFlatSelectiveStreamReader.java | 4 +- .../presto/orc/TestOrcBloomFilters.java | 4 +- .../facebook/presto/orc/TestOrcWriter.java | 2 +- .../presto/orc/TestReadBloomFilter.java | 4 +- .../orc/TestStructBatchStreamReader.java | 2 +- .../orc/TestTupleDomainFilterUtils.java | 2 +- .../orc/TestTupleDomainOrcPredicate.java | 20 +- .../parquet/predicate/PredicateUtils.java | 2 +- .../TupleDomainParquetPredicate.java | 8 +- .../presto/parquet/writer/ParquetWriter.java | 2 +- .../TestTupleDomainParquetPredicate.java | 16 +- .../presto/pinot/PinotBrokerPageSource.java | 4 +- .../presto/pinot/PinotSegmentPageSource.java | 4 +- .../pinot/TestPinotSegmentPageSource.java | 2 +- .../presto/raptor/RaptorBucketFunction.java | 2 +- .../presto/raptor/RaptorMetadata.java | 2 +- .../presto/raptor/RaptorPageSink.java | 4 +- .../raptor/RaptorPageSourceProvider.java | 2 +- .../facebook/presto/raptor/RaptorSplit.java | 2 +- .../presto/raptor/RaptorSplitManager.java | 2 +- .../raptor/RaptorTableLayoutHandle.java | 2 +- .../raptor/metadata/DatabaseShardManager.java | 2 +- .../presto/raptor/metadata/ShardIterator.java | 2 +- .../presto/raptor/metadata/ShardManager.java | 2 +- .../raptor/metadata/ShardPredicate.java | 8 +- .../raptor/storage/DeltaShardRewriter.java | 2 +- .../presto/raptor/storage/FileWriter.java | 2 +- .../raptor/storage/OrcFileRewriter.java | 2 +- .../presto/raptor/storage/OrcFileWriter.java | 2 +- .../presto/raptor/storage/OrcPageSource.java | 2 +- .../raptor/storage/OrcStorageManager.java | 4 +- .../storage/OrcUpdatablePageSource.java | 2 +- .../facebook/presto/raptor/storage/Row.java | 2 +- .../presto/raptor/storage/StorageManager.java | 2 +- .../raptor/storage/StoragePageSink.java | 2 +- .../storage/organization/ShardCompactor.java | 4 +- .../systemtables/ColumnRangesSystemTable.java | 2 +- .../raptor/systemtables/PageListBuilder.java | 4 +- .../PreparedStatementBuilder.java | 6 +- .../ShardMetadataRecordCursor.java | 4 +- .../ShardMetadataSystemTable.java | 2 +- .../TableMetadataSystemTable.java | 8 +- .../systemtables/TableStatsSystemTable.java | 8 +- .../presto/raptor/util/ConcatPageSource.java | 2 +- .../presto/raptor/util/PageBuffer.java | 2 +- .../raptor/TestRaptorBucketFunction.java | 2 +- .../presto/raptor/TestRaptorConnector.java | 2 +- .../metadata/TestDatabaseShardManager.java | 16 +- .../raptor/metadata/TestShardPredicate.java | 14 +- .../raptor/storage/TestOrcFileRewriter.java | 4 +- .../raptor/storage/TestOrcStorageManager.java | 6 +- .../raptor/storage/TestShardEjector.java | 2 +- .../organization/TestShardCompactor.java | 6 +- .../TestShardMetadataRecordCursor.java | 10 +- .../presto/rcfile/PageSplitterUtil.java | 2 +- .../facebook/presto/rcfile/RcFileReader.java | 2 +- .../presto/rcfile/RcFileWriteValidation.java | 2 +- .../facebook/presto/rcfile/RcFileWriter.java | 2 +- .../facebook/presto/rcfile/RcFileTester.java | 2 +- .../execution/PrestoSparkOutputOperator.java | 2 +- .../PrestoSparkRemoteSourceOperator.java | 4 +- .../facebook/presto/spi/BucketFunction.java | 2 + .../presto/spi/ConnectorPageSink.java | 1 + .../presto/spi/ConnectorPageSource.java | 2 + .../presto/spi/ConnectorResolvedIndex.java | 2 +- .../presto/spi/ConnectorTableLayout.java | 2 +- .../spi/ConnectorTableLayoutResult.java | 2 +- .../com/facebook/presto/spi/Constraint.java | 4 +- .../presto/spi/DiscretePredicates.java | 2 +- .../facebook/presto/spi/FixedPageSource.java | 2 + .../com/facebook/presto/spi/PageIndexer.java | 2 + .../com/facebook/presto/spi/PageSorter.java | 1 + .../facebook/presto/spi/RecordPageSource.java | 2 + .../com/facebook/presto/spi/SystemTable.java | 2 +- .../spi/connector/ConnectorMetadata.java | 2 +- .../ClassLoaderSafeConnectorMetadata.java | 2 +- .../ClassLoaderSafeConnectorPageSink.java | 2 +- .../facebook/presto/spi/page/PagesSerde.java | 2 +- .../presto/spi/page/PagesSerdeUtil.java | 2 +- .../presto/spi/plan/TableScanNode.java | 2 +- .../presto/spi/relation/DomainTranslator.java | 4 +- .../spi/relation/PredicateCompiler.java | 1 + .../spi/predicate/TestEquatableValueSet.java | 354 ------------------ .../presto/spi/predicate/TestTupleDomain.java | 7 +- .../presto/tests/tpch/ExampleSystemTable.java | 2 +- .../presto/tests/tpch/TpchIndexHandle.java | 2 +- .../presto/tests/tpch/TpchIndexMetadata.java | 4 +- .../presto/tests/tpch/TpchIndexProvider.java | 4 +- .../presto/tests/tpch/TpchIndexedData.java | 2 +- .../presto/tests/TestLocalQueries.java | 2 +- .../thrift/api/PrestoThriftDomain.java | 2 +- .../thrift/api/PrestoThriftPageResult.java | 2 +- .../PrestoThriftAllOrNoneValueSet.java | 2 +- .../PrestoThriftEquatableValueSet.java | 4 +- .../valuesets/PrestoThriftRangeValueSet.java | 8 +- .../api/valuesets/PrestoThriftValueSet.java | 8 +- .../connector/thrift/api/TestReadWrite.java | 2 +- .../TestPrestoThriftAllOrNoneValueSet.java | 2 +- .../TestPrestoThriftEquatableValueSet.java | 2 +- .../TestPrestoThriftRangeValueSet.java | 6 +- .../connector/thrift/ThriftIndexHandle.java | 4 +- .../thrift/ThriftIndexPageSource.java | 2 +- .../connector/thrift/ThriftMetadata.java | 2 +- .../connector/thrift/ThriftPageSource.java | 2 +- .../thrift/ThriftTableLayoutHandle.java | 2 +- .../thrift/util/TupleDomainConversion.java | 2 +- .../thrift/TestThriftIndexPageSource.java | 4 +- .../thrift/server/ThriftTpchService.java | 4 +- .../facebook/presto/tpcds/TpcdsMetadata.java | 2 +- .../presto/tpch/TpchBucketFunction.java | 2 +- .../facebook/presto/tpch/TpchMetadata.java | 6 +- .../facebook/presto/tpch/TpchRecordSet.java | 4 +- .../presto/tpch/TpchRecordSetProvider.java | 2 +- .../com/facebook/presto/tpch/TpchSplit.java | 2 +- .../presto/tpch/TpchTableLayoutHandle.java | 2 +- .../presto/tpch/util/PredicateUtils.java | 4 +- .../presto/tpch/TestTpchMetadata.java | 6 +- 713 files changed, 1444 insertions(+), 1432 deletions(-) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/Page.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/PageBuilder.java (99%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/AllOrNone.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/AllOrNoneValueSet.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/DiscreteValues.java (94%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Domain.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/EquatableValueSet.java (97%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Marker.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/NullableValue.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Range.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/Ranges.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/SortedRangeSet.java (98%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/TupleDomain.java (93%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/ValueSet.java (96%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/predicate/ValuesProcessor.java (95%) rename {presto-spi/src/main/java/com/facebook/presto/spi => presto-common/src/main/java/com/facebook/presto/common}/relation/Predicate.java (90%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/TestPage.java (99%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/BenchmarkSortedRangeSet.java (98%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/TestAllOrNoneValueSet.java (99%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/TestDomain.java (99%) create mode 100644 presto-common/src/test/java/com/facebook/presto/common/predicate/TestEquatableValueSet.java rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/TestMarker.java (99%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/TestRange.java (99%) rename {presto-spi/src/test/java/com/facebook/presto/spi => presto-common/src/test/java/com/facebook/presto/common}/predicate/TestSortedRangeSet.java (99%) delete mode 100644 presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java index 7726a03165dda..b14e238da6894 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java @@ -27,14 +27,14 @@ import com.facebook.presto.accumulo.model.AccumuloColumnHandle; import com.facebook.presto.accumulo.model.TabletSplitMetadata; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker.Bound; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker.Bound; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -902,14 +902,14 @@ public static Collection getRangesFromDomain(Optional domain, Acc } ImmutableSet.Builder rangeBuilder = ImmutableSet.builder(); - for (com.facebook.presto.spi.predicate.Range range : domain.get().getValues().getRanges().getOrderedRanges()) { + for (com.facebook.presto.common.predicate.Range range : domain.get().getValues().getRanges().getOrderedRanges()) { rangeBuilder.add(getRangeFromPrestoRange(range, serializer)); } return rangeBuilder.build(); } - private static Range getRangeFromPrestoRange(com.facebook.presto.spi.predicate.Range prestoRange, AccumuloRowSerializer serializer) + private static Range getRangeFromPrestoRange(com.facebook.presto.common.predicate.Range prestoRange, AccumuloRowSerializer serializer) throws TableNotFoundException { Range accumuloRange; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloSplitManager.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloSplitManager.java index 34d80fc7b7146..e9e2966e6bc12 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloSplitManager.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloSplitManager.java @@ -20,6 +20,9 @@ import com.facebook.presto.accumulo.model.AccumuloTableLayoutHandle; import com.facebook.presto.accumulo.model.TabletSplitMetadata; import com.facebook.presto.accumulo.model.WrappedRange; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain.ColumnDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -28,9 +31,6 @@ import com.facebook.presto.spi.FixedSplitSource; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.TupleDomain.ColumnDomain; import com.google.common.collect.ImmutableList; import javax.inject.Inject; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java index 123167c20c72f..3202194fda965 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/io/AccumuloPageSink.java @@ -20,11 +20,11 @@ import com.facebook.presto.accumulo.model.Field; import com.facebook.presto.accumulo.model.Row; import com.facebook.presto.accumulo.serializers.AccumuloRowSerializer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeUtils; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnConstraint.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnConstraint.java index 3a8f7ff8b51d9..db7cdbfc8f56f 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnConstraint.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloColumnConstraint.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.accumulo.model; -import com.facebook.presto.spi.predicate.Domain; +import com.facebook.presto.common.predicate.Domain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloTableLayoutHandle.java b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloTableLayoutHandle.java index 3386a7f0756c5..1c1ebb589b1fd 100644 --- a/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloTableLayoutHandle.java +++ b/presto-accumulo/src/main/java/com/facebook/presto/accumulo/model/AccumuloTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.accumulo.model; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java index 577656261c1ed..53a19c43782c1 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopMetadata.java @@ -14,6 +14,7 @@ package com.facebook.presto.atop; import com.facebook.presto.atop.AtopTable.AtopColumn; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.Domain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java index 8781b38651865..a86debc42dd6e 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopPageSource.java @@ -14,11 +14,11 @@ package com.facebook.presto.atop; import com.facebook.presto.atop.AtopTable.AtopColumn; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java index 45173e0b62548..7e31d72ad62fd 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopSplitManager.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.atop; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.ConnectorSplitSource; @@ -22,9 +25,6 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.ValueSet; import javax.inject.Inject; diff --git a/presto-atop/src/main/java/com/facebook/presto/atop/AtopTableLayoutHandle.java b/presto-atop/src/main/java/com/facebook/presto/atop/AtopTableLayoutHandle.java index 7834b641ee2b3..bef9cf5ad8096 100644 --- a/presto-atop/src/main/java/com/facebook/presto/atop/AtopTableLayoutHandle.java +++ b/presto-atop/src/main/java/com/facebook/presto/atop/AtopTableLayoutHandle.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.atop; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.Domain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java index 49708fa5ef7ae..634a0f3f1f94a 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcClient.java @@ -14,6 +14,7 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.TableStatistics; import com.google.common.base.CharMatcher; import com.google.common.base.Joiner; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcClient.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcClient.java index 6c4779e411c8d..a88838994b74c 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcClient.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcClient.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplitSource; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.TableStatistics; import javax.annotation.Nullable; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java index 12f70fb1b4fed..42c3ecaaecede 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcPageSink.java @@ -14,12 +14,12 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Shorts; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcSplit.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcSplit.java index 04251946b1f5b..bd3ff527ca5a5 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcSplit.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcSplit.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.plugin.jdbc.optimization.JdbcExpression; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcTableLayoutHandle.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcTableLayoutHandle.java index 0bea87df5c37c..69f0cf615feda 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcTableLayoutHandle.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/JdbcTableLayoutHandle.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.plugin.jdbc.optimization.JdbcExpression; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java index f04690886b306..37f80b533e7d2 100644 --- a/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java +++ b/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/QueryBuilder.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.common.type.CharType; @@ -30,9 +33,6 @@ import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.plugin.jdbc.optimization.JdbcExpression; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java index c15d6b2526b05..c544891798d46 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcQueryBuilder.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.CharType; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java index b7c6076661a87..8947b48c2facb 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcRecordSetProvider.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplitSource; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.AfterClass; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcSplit.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcSplit.java index c4bef261b66ba..c1c564500d6d7 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcSplit.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestJdbcSplit.java @@ -14,7 +14,7 @@ package com.facebook.presto.plugin.jdbc; import com.facebook.airlift.json.JsonCodec; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestingDatabase.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestingDatabase.java index e18a101177e91..b18d508e5770e 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestingDatabase.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/TestingDatabase.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.plugin.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplitSource; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableMap; import org.h2.Driver; diff --git a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java index c2490730afc48..707354c57bee4 100644 --- a/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java +++ b/presto-base-jdbc/src/test/java/com/facebook/presto/plugin/jdbc/optimization/TestJdbcComputePushdown.java @@ -14,6 +14,7 @@ package com.facebook.presto.plugin.jdbc.optimization; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.PlanNodeStatsEstimate; import com.facebook.presto.cost.StatsAndCosts; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java index 09ab4ebca3e82..f934be91d8bf2 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery1.java @@ -14,6 +14,8 @@ package com.facebook.presto.benchmark; import com.facebook.presto.benchmark.HandTpchQuery1.TpchQuery1Operator.TpchQuery1OperatorFactory; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; @@ -23,8 +25,6 @@ import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.LocalQueryRunner; diff --git a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java index 2c8cc1aeb6f5d..21ff0da552491 100644 --- a/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java +++ b/presto-benchmark/src/main/java/com/facebook/presto/benchmark/HandTpchQuery6.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.benchmark; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.FunctionManager; @@ -25,7 +26,6 @@ import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.PageFunctionCompiler; diff --git a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkDecimalAggregation.java b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkDecimalAggregation.java index 3402c09e0153d..34e6900e017cf 100644 --- a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkDecimalAggregation.java +++ b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkDecimalAggregation.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.benchmark; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkInequalityJoin.java b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkInequalityJoin.java index bf8e28d0713b5..ae830a4e6b54b 100644 --- a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkInequalityJoin.java +++ b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/BenchmarkInequalityJoin.java @@ -14,7 +14,7 @@ package com.facebook.presto.benchmark; import com.facebook.presto.SystemSessionProperties; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableMap; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/MemoryLocalQueryRunner.java b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/MemoryLocalQueryRunner.java index 4046e898df5c5..69c0f9c1ec780 100644 --- a/presto-benchmark/src/test/java/com/facebook/presto/benchmark/MemoryLocalQueryRunner.java +++ b/presto-benchmark/src/test/java/com/facebook/presto/benchmark/MemoryLocalQueryRunner.java @@ -15,6 +15,7 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.TaskStateMachine; import com.facebook.presto.memory.MemoryPool; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.Driver; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.plugin.memory.MemoryConnectorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.Plugin; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.TableHandle; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSink.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSink.java index 80d0a82489b2e..7052af20ff47a 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSink.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSink.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListeningScheduledExecutorService; import io.airlift.slice.Slice; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSource.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSource.java index 536bbe7a8fc7d..836a15ae8d500 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSource.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.google.common.util.concurrent.ListeningScheduledExecutorService; import io.airlift.units.Duration; diff --git a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java index e66f4f1849fd9..fe1c7aaaddae8 100644 --- a/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java +++ b/presto-blackhole/src/main/java/com/facebook/presto/plugin/blackhole/BlackHolePageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.plugin.blackhole; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.DecimalType; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClusteringPredicatesExtractor.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClusteringPredicatesExtractor.java index 4b33e2aa36594..1c6872bcbd676 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClusteringPredicatesExtractor.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClusteringPredicatesExtractor.java @@ -15,10 +15,10 @@ import com.datastax.driver.core.VersionNumber; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java index 575053835fb63..c389cc155156c 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraMetadata.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java index 7e06de591aecc..324e2a37ea8e8 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPageSink.java @@ -15,10 +15,10 @@ import com.datastax.driver.core.PreparedStatement; import com.datastax.driver.core.querybuilder.Insert; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartition.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartition.java index e501d82703255..7928658bea0c5 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartition.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartition.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.cassandra; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import java.nio.ByteBuffer; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionManager.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionManager.java index 0fb8be0fe488f..fd03ed008673b 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionManager.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionManager.java @@ -15,11 +15,11 @@ import com.facebook.airlift.log.Logger; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionResult.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionResult.java index f9e594e9c4872..92b7fbfe3819b 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionResult.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraPartitionResult.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.cassandra; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import java.util.List; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java index be3c2887b198f..55a8499f7a2aa 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraRecordCursor.java @@ -15,9 +15,9 @@ import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.predicate.NullableValue; import io.airlift.slice.Slice; import java.util.List; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java index 1b96534959053..9f1ac6bbb23bd 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraType.java @@ -17,6 +17,7 @@ import com.datastax.driver.core.Row; import com.datastax.driver.core.utils.Bytes; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.common.type.DateType; @@ -27,7 +28,6 @@ import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.NullableValue; import com.google.common.annotations.VisibleForTesting; import com.google.common.net.InetAddresses; import io.airlift.slice.Slice; diff --git a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/NativeCassandraSession.java b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/NativeCassandraSession.java index 04455387a07be..985e7bbaf22cf 100644 --- a/presto-cassandra/src/main/java/com/facebook/presto/cassandra/NativeCassandraSession.java +++ b/presto-cassandra/src/main/java/com/facebook/presto/cassandra/NativeCassandraSession.java @@ -39,13 +39,13 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; import com.facebook.presto.cassandra.util.CassandraCqlUtils; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java index d59f9af6164a0..5609e4985a3d0 100644 --- a/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java +++ b/presto-cassandra/src/test/java/com/facebook/presto/cassandra/util/TestCassandraClusteringPredicatesExtractor.java @@ -19,9 +19,9 @@ import com.facebook.presto.cassandra.CassandraTable; import com.facebook.presto.cassandra.CassandraTableHandle; import com.facebook.presto.cassandra.CassandraType; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.BeforeTest; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/Page.java b/presto-common/src/main/java/com/facebook/presto/common/Page.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/Page.java rename to presto-common/src/main/java/com/facebook/presto/common/Page.java index 59a712a710cd6..6238512a10df5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/Page.java +++ b/presto-common/src/main/java/com/facebook/presto/common/Page.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/PageBuilder.java similarity index 99% rename from presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java rename to presto-common/src/main/java/com/facebook/presto/common/PageBuilder.java index 4b93acc4e3701..344cfd300ca72 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/PageBuilder.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNone.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNone.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNone.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNone.java index 82cac93152411..f5dd6d43580ac 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNone.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNone.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; public interface AllOrNone { diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNoneValueSet.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNoneValueSet.java index 7ab300899d845..1ed5686cdd6d7 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/AllOrNoneValueSet.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/AllOrNoneValueSet.java @@ -11,11 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; -import com.facebook.presto.common.predicate.Primitives; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -137,7 +136,7 @@ public ValueSet complement() } @Override - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { return "[" + (all ? "ALL" : "NONE") + "]"; } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/DiscreteValues.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/DiscreteValues.java similarity index 94% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/DiscreteValues.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/DiscreteValues.java index 857f205904805..48d5edea28d76 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/DiscreteValues.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/DiscreteValues.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import java.util.Collection; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Domain.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Domain.java index 9597c4f4eb06a..31c2f9fed4940 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Domain.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Domain.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -276,8 +276,8 @@ public Domain simplify() return Domain.create(simplifiedValueSet, nullAllowed); } - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { - return "[ " + (nullAllowed ? "NULL, " : "") + values.toString(session) + " ]"; + return "[ " + (nullAllowed ? "NULL, " : "") + values.toString(properties) + " ]"; } } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/EquatableValueSet.java similarity index 97% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/EquatableValueSet.java index 3de30d3537efb..646c9e832a657 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/EquatableValueSet.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/EquatableValueSet.java @@ -11,12 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.presto.common.block.Block; -import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -239,10 +238,10 @@ public EquatableValueSet complement() } @Override - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { return (whiteList ? "[ " : "EXCLUDES[ ") + entries.stream() - .map(entry -> type.getObjectValue(session.getSqlFunctionProperties(), entry.getBlock(), 0).toString()) + .map(entry -> type.getObjectValue(properties, entry.getBlock(), 0).toString()) .collect(Collectors.joining(", ")) + " ]"; } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Marker.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Marker.java index 0e0d816b458fa..c54b98ddb910a 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Marker.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Marker.java @@ -11,12 +11,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.presto.common.block.Block; -import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -129,12 +128,12 @@ public Object getValue() return Utils.blockToNativeValue(type, valueBlock.get()); } - public Object getPrintableValue(ConnectorSession session) + public Object getPrintableValue(SqlFunctionProperties properties) { if (!valueBlock.isPresent()) { throw new IllegalStateException("No value to get"); } - return type.getObjectValue(session.getSqlFunctionProperties(), valueBlock.get(), 0); + return type.getObjectValue(properties, valueBlock.get(), 0); } @JsonProperty @@ -282,7 +281,7 @@ public boolean equals(Object obj) && (!this.valueBlock.isPresent() || type.equalTo(this.valueBlock.get(), 0, other.valueBlock.get(), 0)); } - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { StringBuilder buffer = new StringBuilder("{"); buffer.append("type=").append(type); @@ -294,7 +293,7 @@ else if (isUpperUnbounded()) { buffer.append(""); } else { - buffer.append(getPrintableValue(session)); + buffer.append(getPrintableValue(properties)); } buffer.append(", bound=").append(bound); buffer.append("}"); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/NullableValue.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/NullableValue.java index 4c04453ad4f6c..ab053535373f5 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/NullableValue.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/NullableValue.java @@ -11,11 +11,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.presto.common.block.Block; -import com.facebook.presto.common.predicate.Primitives; -import com.facebook.presto.common.predicate.Utils; import com.facebook.presto.common.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Range.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Range.java index 176976af1a7c5..a11b3c1957155 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Range.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Range.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -199,17 +199,17 @@ public boolean equals(Object obj) Objects.equals(this.high, other.high); } - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { StringBuilder buffer = new StringBuilder(); if (isSingleValue()) { - buffer.append('[').append(low.getPrintableValue(session)).append(']'); + buffer.append('[').append(low.getPrintableValue(properties)).append(']'); } else { buffer.append((low.getBound() == Marker.Bound.EXACTLY) ? '[' : '('); - buffer.append(low.isLowerUnbounded() ? "" : low.getPrintableValue(session)); + buffer.append(low.isLowerUnbounded() ? "" : low.getPrintableValue(properties)); buffer.append(", "); - buffer.append(high.isUpperUnbounded() ? "" : high.getPrintableValue(session)); + buffer.append(high.isUpperUnbounded() ? "" : high.getPrintableValue(properties)); buffer.append((high.getBound() == Marker.Bound.EXACTLY) ? ']' : ')'); } return buffer.toString(); diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Ranges.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/Ranges.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/Ranges.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/Ranges.java index cd123b38d33fa..c51486b894c09 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/Ranges.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/Ranges.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/SortedRangeSet.java similarity index 98% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/SortedRangeSet.java index bbc342f179043..33eceb5168b5b 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/SortedRangeSet.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/SortedRangeSet.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -354,10 +354,10 @@ public boolean equals(Object obj) } @Override - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { return "[" + lowIndexedRanges.values().stream() - .map(range -> range.toString(session)) + .map(range -> range.toString(properties)) .collect(Collectors.joining(", ")) + "]"; } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/TupleDomain.java similarity index 93% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/TupleDomain.java index ba14b5297f5aa..bcd9db70d520c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/TupleDomain.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/TupleDomain.java @@ -11,11 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.relation.ConstantExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -104,22 +103,6 @@ public static Optional> extractFixedValues(TupleDomain .collect(toLinkedMap(Map.Entry::getKey, entry -> new NullableValue(entry.getValue().getType(), entry.getValue().getNullableSingleValue())))); } - /** - * Extract all column constraints that require exactly one value or only null in their respective Domains. - * Returns an empty Optional if the Domain is none. - */ - public static Optional> extractFixedValuesToConstantExpressions(TupleDomain tupleDomain) - { - if (!tupleDomain.getDomains().isPresent()) { - return Optional.empty(); - } - - return Optional.of(tupleDomain.getDomains().get() - .entrySet().stream() - .filter(entry -> entry.getValue().isNullableSingleValue()) - .collect(toLinkedMap(Map.Entry::getKey, entry -> new ConstantExpression(entry.getValue().getNullableSingleValue(), entry.getValue().getType())))); - } - /** * Extract all column constraints that require a set of one (or more) values in their respective Domains. All the * ranges (see {@link SortedRangeSet}) must have fixed values. @@ -405,7 +388,7 @@ public String toString() return "TupleDomain{...}"; } - public String toString(ConnectorSession session) + public String toString(SqlFunctionProperties properties) { StringBuilder buffer = new StringBuilder(); if (isAll()) { @@ -416,7 +399,7 @@ else if (isNone()) { } else { buffer.append(domains.get().entrySet().stream() - .collect(toLinkedMap(Map.Entry::getKey, entry -> entry.getValue().toString(session)))); + .collect(toLinkedMap(Map.Entry::getKey, entry -> entry.getValue().toString(properties)))); } return buffer.toString(); } @@ -477,7 +460,7 @@ public TupleDomain compact(int threshold) return TupleDomain.withColumnDomains(unmodifiableMap(compactedDomains)); } - private static Collector> toLinkedMap(Function keyMapper, Function valueMapper) + public static Collector> toLinkedMap(Function keyMapper, Function valueMapper) { return toMap( keyMapper, diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/ValueSet.java similarity index 96% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/ValueSet.java index eb52e281c4ea0..ab8d50bfc6d11 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValueSet.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/ValueSet.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; +import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.ConnectorSession; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; @@ -148,5 +148,5 @@ default boolean contains(ValueSet other) return this.union(other).equals(this); } - String toString(ConnectorSession session); + String toString(SqlFunctionProperties properties); } diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValuesProcessor.java b/presto-common/src/main/java/com/facebook/presto/common/predicate/ValuesProcessor.java similarity index 95% rename from presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValuesProcessor.java rename to presto-common/src/main/java/com/facebook/presto/common/predicate/ValuesProcessor.java index 60e1e08f4d1ca..b57fda938a824 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/predicate/ValuesProcessor.java +++ b/presto-common/src/main/java/com/facebook/presto/common/predicate/ValuesProcessor.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import java.util.function.Consumer; import java.util.function.Function; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java b/presto-common/src/main/java/com/facebook/presto/common/relation/Predicate.java similarity index 90% rename from presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java rename to presto-common/src/main/java/com/facebook/presto/common/relation/Predicate.java index 46f93d8a97dd6..b67a5a8024c91 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/Predicate.java +++ b/presto-common/src/main/java/com/facebook/presto/common/relation/Predicate.java @@ -11,10 +11,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.relation; +package com.facebook.presto.common.relation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.function.SqlFunctionProperties; -import com.facebook.presto.spi.Page; public interface Predicate { diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java b/presto-common/src/test/java/com/facebook/presto/common/TestPage.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java rename to presto-common/src/test/java/com/facebook/presto/common/TestPage.java index c78a22bc7f64e..4361239be38d1 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/TestPage.java +++ b/presto-common/src/test/java/com/facebook/presto/common/TestPage.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi; +package com.facebook.presto.common; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/BenchmarkSortedRangeSet.java similarity index 98% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/BenchmarkSortedRangeSet.java index c29ad83d2f3a1..f3d187c0305e7 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/BenchmarkSortedRangeSet.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/BenchmarkSortedRangeSet.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestAllOrNoneValueSet.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/TestAllOrNoneValueSet.java index 212b6e266e58e..3bb17bda7d73a 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestAllOrNoneValueSet.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestAllOrNoneValueSet.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.type.TestingTypeDeserializer; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestDomain.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/TestDomain.java index 53364f4afce0a..dd68489977eb9 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestDomain.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestDomain.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.block.Block; diff --git a/presto-common/src/test/java/com/facebook/presto/common/predicate/TestEquatableValueSet.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestEquatableValueSet.java new file mode 100644 index 0000000000000..69cb39394e9a7 --- /dev/null +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestEquatableValueSet.java @@ -0,0 +1,354 @@ +/* + * 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 com.facebook.presto.common.predicate; + +import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.TestingBlockEncodingSerde; +import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.type.TestingIdType; +import com.facebook.presto.common.type.TestingTypeDeserializer; +import com.facebook.presto.common.type.TestingTypeManager; +import com.facebook.presto.common.type.Type; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import org.testng.annotations.Test; + +import java.util.Iterator; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; + +public class TestEquatableValueSet +{ + @Test + public void testEmptySet() + { + EquatableValueSet equatables = EquatableValueSet.none(TestingIdType.ID); + assertEquals(equatables.getType(), TestingIdType.ID); + assertTrue(equatables.isNone()); + assertFalse(equatables.isAll()); + assertFalse(equatables.isSingleValue()); + assertTrue(equatables.isWhiteList()); + assertEquals(equatables.getValues().size(), 0); + assertEquals(equatables.complement(), EquatableValueSet.all(TestingIdType.ID)); + assertFalse(equatables.containsValue(0L)); + assertFalse(equatables.containsValue(1L)); + } + + @Test + public void testEntireSet() + { + EquatableValueSet equatables = EquatableValueSet.all(TestingIdType.ID); + assertEquals(equatables.getType(), TestingIdType.ID); + assertFalse(equatables.isNone()); + assertTrue(equatables.isAll()); + assertFalse(equatables.isSingleValue()); + assertFalse(equatables.isWhiteList()); + assertEquals(equatables.getValues().size(), 0); + assertEquals(equatables.complement(), EquatableValueSet.none(TestingIdType.ID)); + assertTrue(equatables.containsValue(0L)); + assertTrue(equatables.containsValue(1L)); + } + + @Test + public void testSingleValue() + { + EquatableValueSet equatables = EquatableValueSet.of(TestingIdType.ID, 10L); + + EquatableValueSet complement = (EquatableValueSet) EquatableValueSet.all(TestingIdType.ID).subtract(equatables); + + // Whitelist + assertEquals(equatables.getType(), TestingIdType.ID); + assertFalse(equatables.isNone()); + assertFalse(equatables.isAll()); + assertTrue(equatables.isSingleValue()); + assertTrue(equatables.isWhiteList()); + assertTrue(Iterables.elementsEqual(equatables.getValues(), ImmutableList.of(10L))); + assertEquals(equatables.complement(), complement); + assertFalse(equatables.containsValue(0L)); + assertFalse(equatables.containsValue(1L)); + assertTrue(equatables.containsValue(10L)); + + // Blacklist + assertEquals(complement.getType(), TestingIdType.ID); + assertFalse(complement.isNone()); + assertFalse(complement.isAll()); + assertFalse(complement.isSingleValue()); + assertFalse(complement.isWhiteList()); + assertTrue(Iterables.elementsEqual(complement.getValues(), ImmutableList.of(10L))); + assertEquals(complement.complement(), equatables); + assertTrue(complement.containsValue(0L)); + assertTrue(complement.containsValue(1L)); + assertFalse(complement.containsValue(10L)); + } + + @Test + public void testMultipleValues() + { + EquatableValueSet equatables = EquatableValueSet.of(TestingIdType.ID, 1L, 2L, 3L, 1L); + + EquatableValueSet complement = (EquatableValueSet) EquatableValueSet.all(TestingIdType.ID).subtract(equatables); + + // Whitelist + assertEquals(equatables.getType(), TestingIdType.ID); + assertFalse(equatables.isNone()); + assertFalse(equatables.isAll()); + assertFalse(equatables.isSingleValue()); + assertTrue(equatables.isWhiteList()); + assertTrue(Iterables.elementsEqual(equatables.getValues(), ImmutableList.of(1L, 2L, 3L))); + assertEquals(equatables.complement(), complement); + assertFalse(equatables.containsValue(0L)); + assertTrue(equatables.containsValue(1L)); + assertTrue(equatables.containsValue(2L)); + assertTrue(equatables.containsValue(3L)); + assertFalse(equatables.containsValue(4L)); + + // Blacklist + assertEquals(complement.getType(), TestingIdType.ID); + assertFalse(complement.isNone()); + assertFalse(complement.isAll()); + assertFalse(complement.isSingleValue()); + assertFalse(complement.isWhiteList()); + assertTrue(Iterables.elementsEqual(complement.getValues(), ImmutableList.of(1L, 2L, 3L))); + assertEquals(complement.complement(), equatables); + assertTrue(complement.containsValue(0L)); + assertFalse(complement.containsValue(1L)); + assertFalse(complement.containsValue(2L)); + assertFalse(complement.containsValue(3L)); + assertTrue(complement.containsValue(4L)); + } + + @Test + public void testGetSingleValue() + { + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).getSingleValue(), 0L); + try { + EquatableValueSet.all(TestingIdType.ID).getSingleValue(); + fail(); + } + catch (IllegalStateException ignored) { + } + } + + @Test + public void testOverlaps() + { + assertTrue(EquatableValueSet.all(TestingIdType.ID).overlaps(EquatableValueSet.all(TestingIdType.ID))); + assertFalse(EquatableValueSet.all(TestingIdType.ID).overlaps(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + + assertFalse(EquatableValueSet.none(TestingIdType.ID).overlaps(EquatableValueSet.all(TestingIdType.ID))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).overlaps(EquatableValueSet.none(TestingIdType.ID))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.all(TestingIdType.ID))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 1L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L).complement())); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).overlaps(EquatableValueSet.of(TestingIdType.ID, 1L).complement())); + + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.all(TestingIdType.ID))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.of(TestingIdType.ID, -1L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).overlaps(EquatableValueSet.of(TestingIdType.ID, -1L).complement())); + + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.all(TestingIdType.ID))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.none(TestingIdType.ID))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(TestingIdType.ID, -1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(TestingIdType.ID, -1L).complement())); + } + + @Test + public void testContains() + { + assertTrue(EquatableValueSet.all(TestingIdType.ID).contains(EquatableValueSet.all(TestingIdType.ID))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).contains(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertTrue(EquatableValueSet.all(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + + assertFalse(EquatableValueSet.none(TestingIdType.ID).contains(EquatableValueSet.all(TestingIdType.ID))); + assertTrue(EquatableValueSet.none(TestingIdType.ID).contains(EquatableValueSet.none(TestingIdType.ID))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.none(TestingIdType.ID).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.all(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.of(TestingIdType.ID, 0L).complement())); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L).contains(EquatableValueSet.of(TestingIdType.ID, 1L).complement())); + + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.all(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.none(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 2L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement())); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 0L).complement())); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).contains(EquatableValueSet.of(TestingIdType.ID, 1L).complement())); + + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.all(TestingIdType.ID))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.none(TestingIdType.ID))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.of(TestingIdType.ID, 0L))); + assertTrue(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.of(TestingIdType.ID, -1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.of(TestingIdType.ID, 0L, 1L))); + assertFalse(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().contains(EquatableValueSet.of(TestingIdType.ID, -1L).complement())); + } + + @Test + public void testIntersect() + { + assertEquals(EquatableValueSet.none(TestingIdType.ID).intersect(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).intersect(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).intersect(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).intersect(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).intersect(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).intersect(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).intersect(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().intersect(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().intersect(EquatableValueSet.of(TestingIdType.ID, 1L)), EquatableValueSet.of(TestingIdType.ID, 1L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).intersect(EquatableValueSet.of(TestingIdType.ID, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).intersect(EquatableValueSet.of(TestingIdType.ID, 0L, 2L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().intersect(EquatableValueSet.of(TestingIdType.ID, 0L, 2L)), EquatableValueSet.of(TestingIdType.ID, 2L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().intersect(EquatableValueSet.of(TestingIdType.ID, 0L, 2L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L, 1L, 2L).complement()); + } + + @Test + public void testUnion() + { + assertEquals(EquatableValueSet.none(TestingIdType.ID).union(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).union(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).union(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).union(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).union(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).union(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).union(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L, 1L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().union(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().union(EquatableValueSet.of(TestingIdType.ID, 1L)), EquatableValueSet.of(TestingIdType.ID, 0L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).union(EquatableValueSet.of(TestingIdType.ID, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 1L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).union(EquatableValueSet.of(TestingIdType.ID, 0L, 2L)), EquatableValueSet.of(TestingIdType.ID, 0L, 1L, 2L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().union(EquatableValueSet.of(TestingIdType.ID, 0L, 2L)), EquatableValueSet.of(TestingIdType.ID, 1L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement().union(EquatableValueSet.of(TestingIdType.ID, 0L, 2L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L).complement()); + } + + @Test + public void testSubtract() + { + assertEquals(EquatableValueSet.all(TestingIdType.ID).subtract(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).subtract(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.all(TestingIdType.ID)); + assertEquals(EquatableValueSet.all(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L).complement()); + assertEquals(EquatableValueSet.all(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L)), EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()); + assertEquals(EquatableValueSet.all(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L, 1L)); + + assertEquals(EquatableValueSet.none(TestingIdType.ID).subtract(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).subtract(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.none(TestingIdType.ID).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()), EquatableValueSet.none(TestingIdType.ID)); + + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 0L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 1L)), EquatableValueSet.of(TestingIdType.ID, 0L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 1L).complement()), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 0L)); + + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.all(TestingIdType.ID)), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.none(TestingIdType.ID)), EquatableValueSet.of(TestingIdType.ID, 0L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 0L)), EquatableValueSet.of(TestingIdType.ID, 0L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 0L).complement()), EquatableValueSet.none(TestingIdType.ID)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 1L)), EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 1L)); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L)), EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()); + assertEquals(EquatableValueSet.of(TestingIdType.ID, 0L).complement().subtract(EquatableValueSet.of(TestingIdType.ID, 0L, 1L).complement()), EquatableValueSet.of(TestingIdType.ID, 1L)); + } + + @Test(expectedExceptions = UnsupportedOperationException.class) + public void testUnmodifiableCollection() + { + EquatableValueSet.of(TestingIdType.ID, 1L).getValues().clear(); + } + + @Test(expectedExceptions = UnsupportedOperationException.class) + public void testUnmodifiableValueEntries() + { + EquatableValueSet.of(TestingIdType.ID, 1L).getEntries().clear(); + } + + @Test(expectedExceptions = UnsupportedOperationException.class) + public void testUnmodifiableIterator() + { + Iterator iterator = EquatableValueSet.of(TestingIdType.ID, 1L).getValues().iterator(); + iterator.next(); + iterator.remove(); + } + + @Test(expectedExceptions = UnsupportedOperationException.class) + public void testUnmodifiableValueEntryIterator() + { + Iterator iterator = EquatableValueSet.of(TestingIdType.ID, 1L).getEntries().iterator(); + iterator.next(); + iterator.remove(); + } + + @Test + public void testJsonSerialization() + throws Exception + { + TestingTypeManager typeManager = new TestingTypeManager(); + TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); + + ObjectMapper mapper = new ObjectMapperProvider().get() + .registerModule(new SimpleModule() + .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) + .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) + .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); + + EquatableValueSet set = EquatableValueSet.all(TestingIdType.ID); + assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); + + set = EquatableValueSet.none(TestingIdType.ID); + assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); + + set = EquatableValueSet.of(TestingIdType.ID, 1L); + assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); + + set = EquatableValueSet.of(TestingIdType.ID, 1L, 2L); + assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); + + set = EquatableValueSet.of(TestingIdType.ID, 1L, 2L).complement(); + assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); + } +} diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestMarker.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/TestMarker.java index 7221e640730de..a02a77fb453c5 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestMarker.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestMarker.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.block.Block; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestRange.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/TestRange.java index f59ac7cf0b06a..9260f18137bec 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestRange.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestRange.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.block.Block; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestSortedRangeSet.java similarity index 99% rename from presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java rename to presto-common/src/test/java/com/facebook/presto/common/predicate/TestSortedRangeSet.java index ae378e8de4654..3f8636058b6a2 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestSortedRangeSet.java +++ b/presto-common/src/test/java/com/facebook/presto/common/predicate/TestSortedRangeSet.java @@ -11,7 +11,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.facebook.presto.spi.predicate; +package com.facebook.presto.common.predicate; import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.common.block.Block; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java index 4298c8a8e50f5..7a0c4ea687bd7 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidBrokerPageSource.java @@ -14,6 +14,8 @@ package com.facebook.presto.druid; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.DoubleType; @@ -23,8 +25,6 @@ import com.facebook.presto.druid.DruidQueryGenerator.GeneratedDql; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java index e01b3da61f9ed..b4124bbac16f3 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidSegmentPageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -20,7 +21,6 @@ import com.facebook.presto.druid.segment.DruidSegmentReader; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import java.util.List; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidTableLayoutHandle.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidTableLayoutHandle.java index 4eac4109d1519..b86cee8500901 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidTableLayoutHandle.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.druid; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java index 74a600e15e3df..b4b7e5e25b6a1 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchQueryBuilder.java @@ -14,12 +14,12 @@ package com.facebook.presto.elasticsearch; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import io.airlift.slice.Slice; import io.airlift.units.Duration; import org.elasticsearch.action.search.SearchRequestBuilder; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchSplit.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchSplit.java index a47e1d190d737..e0308b2a5e947 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchSplit.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchSplit.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.elasticsearch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchTableLayoutHandle.java b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchTableLayoutHandle.java index b609407636adc..a0a6cb65a04ad 100644 --- a/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchTableLayoutHandle.java +++ b/presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.elasticsearch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java index 8cc95cd191b98..e22bbd966ad9f 100644 --- a/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java +++ b/presto-geospatial/src/main/java/com/facebook/presto/plugin/geospatial/BingTileFunctions.java @@ -16,11 +16,11 @@ import com.esri.core.geometry.Envelope; import com.esri.core.geometry.Point; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.StandardTypes; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java index 9848089efd9d4..885cc4ba9e549 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestBingTileFunctions.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.geospatial; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.Page; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java index 389d3e184f15a..dbf978aa3927b 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialJoinOperator.java @@ -14,6 +14,7 @@ package com.facebook.presto.plugin.geospatial; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.geospatial.KdbTree; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; @@ -31,7 +32,6 @@ import com.facebook.presto.operator.StandardJoinFilterFunction; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.operator.ValuesOperator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java index cb8679579a1fc..c443be11c2c52 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/TestSpatialPartitioningInternalAggregation.java @@ -18,6 +18,7 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCPoint; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.geospatial.KdbTreeUtils; @@ -28,7 +29,6 @@ import com.facebook.presto.operator.aggregation.GroupedAccumulator; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java index 22fd534ea536c..5c63a2b1c0fe8 100644 --- a/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java +++ b/presto-geospatial/src/test/java/com/facebook/presto/plugin/geospatial/aggregation/AbstractTestGeoAggregationFunctions.java @@ -15,13 +15,13 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.serde.EsriGeometrySerde; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.plugin.geospatial.GeoPlugin; -import com.facebook.presto.spi.Page; import io.airlift.slice.Slice; import org.testng.annotations.BeforeClass; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java index e6c6c0d22a067..924b272f156de 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/CachingHiveMetastore.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.ForCachingHiveMetastore; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.MetastoreClientConfig; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java index 3ae891935cacf..5a053a83bdfab 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/ExtendedHiveMetastore.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java index 6d29fbb365f2c..42dadd509db0d 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/MetastoreUtil.java @@ -13,7 +13,9 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; @@ -39,12 +41,10 @@ import com.facebook.presto.hive.PartitionOfflineException; import com.facebook.presto.hive.TableOfflineException; import com.facebook.presto.spi.ErrorCodeSupplier; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.statistics.ColumnStatisticType; import com.google.common.base.CharMatcher; import com.google.common.collect.ImmutableList; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/PartitionFilter.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/PartitionFilter.java index ff999bf41a8fa..94436f62fe65b 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/PartitionFilter.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/PartitionFilter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive.metastore; -import com.facebook.presto.spi.predicate.Domain; +import com.facebook.presto.common.predicate.Domain; import javax.annotation.concurrent.Immutable; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java index 86e0eb693c2ea..7e4548587a2e4 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/RecordingHiveMetastore.java @@ -14,12 +14,12 @@ package com.facebook.presto.hive.metastore; import com.facebook.airlift.json.ObjectMapperProvider; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.ForRecordingHiveMetastore; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.MetastoreClientConfig; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java index bceeab178dc85..95860bf243fd1 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/SemiTransactionalHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.metastore; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.PrincipalType; import com.facebook.presto.spi.security.RoleGrant; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java index 2f6a8de3c15b3..edd52ff2f7fc9 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/Statistics.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.SqlDate; @@ -20,7 +21,6 @@ import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.statistics.ColumnStatisticMetadata; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java index 340e044505a4b..db30841bfacff 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/alluxio/AlluxioHiveMetastore.java @@ -18,6 +18,7 @@ import alluxio.grpc.table.ColumnStatisticsInfo; import alluxio.grpc.table.Constraint; import alluxio.grpc.table.layout.hive.PartitionInfo; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveType; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java index 30df9c9bf76bb..e17e8301f0791 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/file/FileHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.metastore.file; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; @@ -38,7 +39,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.ConnectorIdentity; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java index baa40363d5985..5ab89c1dcf1e8 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/glue/GlueHiveMetastore.java @@ -53,6 +53,7 @@ import com.amazonaws.services.glue.model.UpdatePartitionRequest; import com.amazonaws.services.glue.model.UpdateTableRequest; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; @@ -77,7 +78,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.ConnectorIdentity; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java index b9a5b706e1353..90d55fa3bdb55 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/BridgingHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; import com.facebook.presto.hive.metastore.Column; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java index 251c7ba507dcd..30171339e74f2 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/HiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.HivePrivilegeInfo; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java index 53aa088111248..1e33264e8b365 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveType; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java index 6b849b08e165d..b266d906862b7 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/TestRecordingHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveBasicStatistics; import com.facebook.presto.hive.HiveBucketProperty; @@ -20,7 +21,6 @@ import com.facebook.presto.hive.MetastoreClientConfig; import com.facebook.presto.hive.metastore.HivePrivilegeInfo.HivePrivilege; import com.facebook.presto.hive.metastore.SortingColumn.Order; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java index a1cfc7967af61..7aa2963169350 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/UnimplementedHiveMetastore.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive.metastore; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveType; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java index 9f4ff89e0f33a..37bf8c4216a85 100644 --- a/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/hive/metastore/thrift/InMemoryHiveMetastore.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.metastore.thrift; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.SchemaAlreadyExistsException; import com.facebook.presto.hive.TableAlreadyExistsException; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/BackgroundHiveSplitLoader.java b/presto-hive/src/main/java/com/facebook/presto/hive/BackgroundHiveSplitLoader.java index 8730752595687..8880e5ec3e961 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/BackgroundHiveSplitLoader.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/BackgroundHiveSplitLoader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.HiveSplit.BucketConversion; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.Domain; import com.google.common.base.Supplier; import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java index 15650acdc46eb..7bba7ac521dc8 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/FilteringPageSource.java @@ -13,7 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.MapType; @@ -24,9 +27,6 @@ import com.facebook.presto.orc.TupleDomainFilter; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java index aa08d408a850a..f55772a19db75 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/GenericHiveRecordCursorProvider.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Writable; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBatchPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBatchPageSourceFactory.java index 385838db75bad..698b9d01f55a6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBatchPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBatchPageSourceFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketFunction.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketFunction.java index 365c945c3ed51..f8351f49c6ffe 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketFunction.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import java.util.List; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java index 9b8dfd71bb4c8..e3b843cf55283 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveBucketing.java @@ -13,17 +13,17 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Table; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java index 5c8d2d31a2d09..1f810d799cbcb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveCoercionRecordCursor.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.HivePageSourceProvider.ColumnMapping; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveFileWriter.java index e052bf826a0e7..1f428b84cf404 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveFileWriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import java.util.Optional; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java index 3dc433f42de1c..6d67612439e94 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveMetadata.java @@ -16,6 +16,9 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.VarcharType; @@ -69,9 +72,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.function.StandardFunctionResolution; import com.facebook.presto.spi.plan.FilterStatsCalculatorService; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; import com.facebook.presto.spi.relation.SpecialFormExpression; @@ -136,6 +136,7 @@ import java.util.stream.Stream; import static com.facebook.airlift.concurrent.MoreFutures.toCompletableFuture; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.binaryExpression; @@ -240,7 +241,6 @@ import static com.facebook.presto.spi.StandardErrorCode.INVALID_TABLE_PROPERTY; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.StandardErrorCode.SCHEMA_NOT_EMPTY; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.security.PrincipalType.USER; import static com.facebook.presto.spi.statistics.TableStatisticType.ROW_COUNT; import static com.google.common.base.MoreObjects.firstNonNull; @@ -1967,7 +1967,7 @@ private String createTableLayoutString( .add("buckets", bucketHandle.map(HiveBucketHandle::getReadBucketCount).orElse(null)) .add("bucketsToKeep", bucketFilter.map(HiveBucketFilter::getBucketsToKeep).orElse(null)) .add("filter", TRUE_CONSTANT.equals(remainingPredicate) ? null : rowExpressionService.formatRowExpression(session, remainingPredicate)) - .add("domains", domainPredicate.isAll() ? null : domainPredicate.toString(session)) + .add("domains", domainPredicate.isAll() ? null : domainPredicate.toString(session.getSqlFunctionProperties())) .toString(); } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java index 5265a2d266b07..00627ee991241 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSink.java @@ -16,13 +16,13 @@ import com.facebook.airlift.concurrent.MoreFutures; import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.IntArrayBlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.spi.PrestoException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java index dd19ba785ccbf..f08f216a6f968 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -21,7 +22,6 @@ import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HivePageSourceProvider.ColumnMapping; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.annotations.VisibleForTesting; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java index 8a5c8012e88a8..e51a506b75ddc 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePageSourceProvider.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HdfsEnvironment.HdfsContext; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; import com.google.common.cache.CacheBuilder; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartition.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartition.java index b8ab80e370eec..296c76d699013 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartition.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartition.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.NullableValue; import com.google.common.collect.ImmutableMap; import java.util.Map; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java index 6043310b42665..2e5d20a87b2fb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionManager.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; @@ -28,9 +31,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Predicates; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionResult.java b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionResult.java index 75076ef279055..bb6213899177c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionResult.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HivePartitionResult.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java index a7661a878045a..72aed516798e1 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveRecordCursorProvider.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java index 0b803aa8d7491..9ad8378b51d87 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSelectivePageSourceFactory.java @@ -14,10 +14,10 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java index 21432395e903c..d42ce5fddfa9b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplitManager.java @@ -16,6 +16,8 @@ import com.facebook.airlift.concurrent.BoundedExecutor; import com.facebook.airlift.stats.CounterStat; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.Partition; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java index 6193b6b3bc358..386df51c36835 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveTableLayoutHandle.java @@ -14,12 +14,12 @@ package com.facebook.presto.hive; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java index 710d72b254887..e632b16797a69 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Decimals; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.NullableValue; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.VerifyException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriter.java index 7e07b6a6967a0..4df57c56e76c6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriter.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.hive.PartitionUpdate.FileWriteInfo; import com.facebook.presto.hive.PartitionUpdate.UpdateMode; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.Optional; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java index 22b23ef430984..80ef7da3eeb70 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriterFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; import com.facebook.airlift.event.client.EventClient; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; @@ -30,7 +31,6 @@ import com.facebook.presto.hive.metastore.Table; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.session.PropertyMetadata; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java b/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java index 34463ff4b77dc..873e6cab67c34 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/IonSqlQueryBuilder.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Decimals; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.VarcharType; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import io.airlift.slice.Slice; import org.joda.time.format.DateTimeFormatter; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java index 2437365a6f4dc..54955a45378b0 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; @@ -25,7 +26,6 @@ import com.facebook.presto.orc.OrcWriterOptions; import com.facebook.presto.orc.OrcWriterStats; import com.facebook.presto.orc.metadata.CompressionKind; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java index 5c2b9dd35fdbf..f230b04bef476 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/RcFileFileWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; @@ -22,7 +23,6 @@ import com.facebook.presto.rcfile.RcFileDataSource; import com.facebook.presto.rcfile.RcFileEncoding; import com.facebook.presto.rcfile.RcFileWriter; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.io.CountingOutputStream; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java index c7bee68f41b4e..b94aa338a6b55 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/RecordFileWriter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveWriteUtils.FieldSetter; import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java index 0bcae46a3c600..1a14182992c4c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/S3SelectRecordCursorProvider.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.s3.PrestoS3ClientFactory; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableSet; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java index fb037f82592b9..958430d798b6d 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/SortingFileWriter.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.orc.HdfsOrcDataSource; @@ -24,7 +25,6 @@ import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.orc.OrcDataSourceId; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java index a867ab71f5fad..d00b2034de2c1 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfBatchPageSourceFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.orc; import com.facebook.hive.orc.OrcSerde; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.HdfsEnvironment; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.joda.time.DateTimeZone; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java index 5b8ee306a6c4a..4f7cb781a939e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/DwrfSelectivePageSourceFactory.java @@ -15,6 +15,7 @@ import com.facebook.hive.orc.OrcSerde; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.BucketAdaptation; import com.facebook.presto.hive.FileFormatDataSourceStats; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.StandardFunctionResolution; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; import org.apache.hadoop.conf.Configuration; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java index 2219bf1323567..5c2486aeef6c1 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -26,7 +27,6 @@ import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java index 4a58883e6e9a3..c20b0b8af1e5d 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcBatchPageSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; @@ -39,7 +40,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java index 60291271d0068..b934ef861fdc1 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.orc.OrcAggregatedMemoryContext; import com.facebook.presto.orc.OrcCorruptionException; import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.orc.OrcSelectiveRecordReader; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import java.io.IOException; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java index 31b6f2a2e8035..f89ee7053451c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSourceFactory.java @@ -13,8 +13,11 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; @@ -46,14 +49,11 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.StandardFunctionResolution; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; import com.facebook.presto.spi.relation.InputReferenceExpression; -import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionService; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/TupleDomainFilterCache.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/TupleDomainFilterCache.java index bf291bd3477dd..7d3ac822de82b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/TupleDomainFilterCache.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/TupleDomainFilterCache.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.orc.CacheStatsMBean; import com.facebook.presto.orc.TupleDomainFilter; -import com.facebook.presto.spi.predicate.Domain; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java index f6aa0da274def..1870ba31e91a7 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageReader.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive.pagefile; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import io.airlift.slice.InputStreamSliceInput; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java index 724a96c1795ec..58eafe4dde18c 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSource.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import org.apache.hadoop.fs.FSDataInputStream; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java index cf78ccde72698..e7085cd9cfed4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFilePageSourceFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive.pagefile; import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveBatchPageSourceFactory; import com.facebook.presto.hive.HiveColumnHandle; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.Path; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java index 2f7baf0bb4696..ee5de42e53ebf 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/pagefile/PageFileWriter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive.pagefile; +import com.facebook.presto.common.Page; import com.facebook.presto.hive.HiveCompressionCodec; import com.facebook.presto.hive.HiveFileWriter; import com.facebook.presto.orc.DataSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.page.PagesSerde; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java index 1cefe1c5fb30c..5ef90bbf2b0bb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.parquet; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -24,7 +25,6 @@ import com.facebook.presto.parquet.ParquetCorruptionException; import com.facebook.presto.parquet.reader.ParquetReader; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import org.apache.parquet.io.MessageColumnIO; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index e7b042d1f51d4..062636c72dc37 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive.parquet; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; @@ -34,8 +36,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java index 00aa4da303a10..1ace55fe2458b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.rcfile; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.LazyBlock; @@ -25,7 +26,6 @@ import com.facebook.presto.rcfile.RcFileCorruptionException; import com.facebook.presto.rcfile.RcFileReader; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java index 8db0b5e012b18..5bdcf206ea56b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rcfile/RcFilePageSourceFactory.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.rcfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.FileFormatDataSourceStats; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java index cc9a0bdfb01b3..7bf4f999dad28 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java @@ -14,6 +14,9 @@ package com.facebook.presto.hive.rule; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.expressions.DefaultRowExpressionTraversalVisitor; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.hive.HiveBucketHandle; @@ -50,9 +53,6 @@ import com.facebook.presto.spi.plan.PlanVisitor; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.RowExpression; @@ -72,6 +72,7 @@ import java.util.Set; import java.util.function.Function; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.expressions.LogicalRowExpressions.FALSE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.expressions.LogicalRowExpressions.and; @@ -81,7 +82,6 @@ import static com.facebook.presto.spi.StandardErrorCode.INVALID_CAST_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.facebook.presto.spi.StandardErrorCode.NUMERIC_VALUE_OUT_OF_RANGE; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; @@ -548,7 +548,7 @@ private static String createTableLayoutString( .add("buckets", bucketHandle.map(HiveBucketHandle::getReadBucketCount).orElse(null)) .add("bucketsToKeep", bucketFilter.map(HiveBucketing.HiveBucketFilter::getBucketsToKeep).orElse(null)) .add("filter", TRUE_CONSTANT.equals(remainingPredicate) ? null : rowExpressionService.formatRowExpression(session, remainingPredicate)) - .add("domains", domainPredicate.isAll() ? null : domainPredicate.toString(session)) + .add("domains", domainPredicate.isAll() ? null : domainPredicate.toString(session.getSqlFunctionProperties())) .toString(); } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java index fb7ff209175ca..c47dd18f774e6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/statistics/MetastoreHiveStatisticsProvider.java @@ -15,6 +15,7 @@ package com.facebook.presto.hive.statistics; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Decimals; import com.facebook.presto.common.type.Type; @@ -32,7 +33,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.NullableValue; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java index baa902b157ef9..438c55770322d 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.hive.HiveFileInfo; import com.facebook.presto.hive.HiveSplitPartitionInfo; import com.facebook.presto.hive.InternalHiveSplit; import com.facebook.presto.hive.InternalHiveSplit.InternalHiveBlock; import com.facebook.presto.hive.S3SelectPushdown; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.google.common.collect.ImmutableList; import org.apache.hadoop.fs.BlockLocation; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java index b7068d40842ec..103eb67029cd7 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java index a1d2eca6dfc69..8095ffe9e82df 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/SortBuffer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PageSorter; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java index 7b3eb4990999f..1aa00c1d95f41 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveOrcAggregatedMemoryContext; @@ -23,7 +24,6 @@ import com.facebook.presto.orc.OrcReaderOptions; import com.facebook.presto.orc.StorageStripeMetadataSource; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.AbstractIterator; import io.airlift.units.DataSize; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java index 1548116e58725..2fe643be2a595 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.DataSink; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; import com.facebook.presto.orc.OrcWriter; import com.facebook.presto.orc.OrcWriterOptions; import com.facebook.presto.orc.OrcWriterStats; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index 32e42bf21e395..565d0ab882db5 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -17,9 +17,15 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.stats.CounterStat; import com.facebook.presto.GroupByHashPageIndexerFactory; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.MapType; import com.facebook.presto.common.type.NamedTypeSignature; @@ -76,7 +82,6 @@ import com.facebook.presto.spi.ConnectorViewDefinition; import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.DiscretePredicates; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; @@ -93,11 +98,6 @@ import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingContext; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.security.ConnectorIdentity; @@ -164,6 +164,7 @@ import static com.facebook.airlift.testing.Assertions.assertGreaterThanOrEqual; import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.facebook.airlift.testing.Assertions.assertLessThanOrEqual; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.CharType.createCharType; @@ -265,7 +266,6 @@ import static com.facebook.presto.spi.StandardErrorCode.TRANSACTION_CONFLICT; import static com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingStrategy.UNGROUPED_SCHEDULING; import static com.facebook.presto.spi.connector.NotPartitionedPartitionHandle.NOT_PARTITIONED; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.security.PrincipalType.USER; import static com.facebook.presto.sql.planner.VariablesExtractor.extractUnique; import static com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder.expression; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java index 44bde66dabcc2..b03f88ee33806 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveFileFormats.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.BlockEncodingSerde; @@ -33,8 +35,6 @@ import com.facebook.presto.hive.metastore.StorageFormat; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java index f7f28d5360ee5..4e8c093232333 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestBackgroundHiveSplitLoader.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; import com.facebook.airlift.stats.CounterStat; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.hive.HiveBucketing.HiveBucketFilter; import com.facebook.presto.hive.HiveColumnHandle.ColumnType; import com.facebook.presto.hive.authentication.NoHdfsAuthentication; @@ -23,7 +24,6 @@ import com.facebook.presto.hive.metastore.Table; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java index d63acaf938d40..4299f8f68a826 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestDomainTranslator.java @@ -15,6 +15,10 @@ import com.facebook.presto.common.Subfield; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.MapType; import com.facebook.presto.common.type.RowType; @@ -22,10 +26,6 @@ import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.DomainTranslator.ExtractionResult; @@ -50,6 +50,7 @@ import static com.facebook.presto.block.BlockAssertions.createArrayBigintBlock; import static com.facebook.presto.block.BlockAssertions.createMapBlock; import static com.facebook.presto.common.function.OperatorType.SUBSCRIPT; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.IntegerType.INTEGER; @@ -57,7 +58,6 @@ import static com.facebook.presto.expressions.LogicalRowExpressions.TRUE_CONSTANT; import static com.facebook.presto.hive.HiveTestUtils.mapType; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.relation.ConstantExpression.createConstantExpression; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.DEREFERENCE; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java index 6ee6e940c5555..282551684e8c0 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveBucketing.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index e7027cd966725..44eaea9dea901 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.RowType; import com.facebook.presto.hive.metastore.Column; @@ -32,7 +33,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index 47de9edf2c91f..8d103f385f803 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -81,6 +81,7 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.PARTIAL_MERGE_PUSHDOWN_STRATEGY; import static com.facebook.presto.SystemSessionProperties.PARTITIONING_PROVIDER_CATALOG; +import static com.facebook.presto.common.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.CharType.createCharType; @@ -110,7 +111,6 @@ import static com.facebook.presto.hive.HiveTableProperties.STORAGE_FORMAT_PROPERTY; import static com.facebook.presto.hive.HiveTestUtils.TYPE_MANAGER; import static com.facebook.presto.hive.HiveUtil.columnExtraInfo; -import static com.facebook.presto.spi.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.spi.security.SelectedRole.Type.ROLE; import static com.facebook.presto.sql.analyzer.FeaturesConfig.JoinDistributionType.BROADCAST; import static com.facebook.presto.sql.analyzer.FeaturesConfig.PartialMergePushdownStrategy.PUSH_THROUGH_LOW_MEMORY_OPERATORS; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java index c372e3ed4ac49..3c6f56ce3229f 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveLogicalPlanner.java @@ -15,6 +15,8 @@ import com.facebook.presto.Session; import com.facebook.presto.common.Subfield; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.FunctionManager; @@ -23,8 +25,6 @@ import com.facebook.presto.spi.ConnectorTableLayoutHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; @@ -58,6 +58,10 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_REORDERING_STRATEGY; import static com.facebook.presto.common.function.OperatorType.EQUAL; +import static com.facebook.presto.common.predicate.Domain.multipleValues; +import static com.facebook.presto.common.predicate.Domain.notNull; +import static com.facebook.presto.common.predicate.Domain.singleValue; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.VarcharType.VARCHAR; @@ -69,10 +73,6 @@ import static com.facebook.presto.hive.HiveSessionProperties.PUSHDOWN_FILTER_ENABLED; import static com.facebook.presto.hive.HiveSessionProperties.RANGE_FILTERS_ON_SUBSCRIPTS_ENABLED; import static com.facebook.presto.hive.TestHiveIntegrationSmokeTest.assertRemoteExchangesCount; -import static com.facebook.presto.spi.predicate.Domain.multipleValues; -import static com.facebook.presto.spi.predicate.Domain.notNull; -import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.sql.planner.assertions.MatchResult.NO_MATCH; import static com.facebook.presto.sql.planner.assertions.MatchResult.match; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java index 5b88ebeacee0d..9bdfab22d9338 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveMetadata.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.hive.metastore.SortingColumn; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.NullableValue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slices; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java index 20f924910ae2b..a287c0f9edcdb 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java @@ -15,7 +15,10 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.GroupByHashPageIndexerFactory; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Column; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; @@ -27,12 +30,9 @@ import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.MaterializedResult; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java index 1d68ca4e53a34..e0bd8ec13fd06 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePartitionManager.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.hive.metastore.Column; @@ -22,8 +24,6 @@ import com.facebook.presto.hive.metastore.Table; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.Constraint; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java index 2367a0c9416bf..48cad3e461fce 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestIonSqlQueryBuilder.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.TypeManager; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.type.TypeRegistry; import com.facebook.presto.util.DateTimeUtils; import com.google.common.collect.ImmutableList; @@ -29,6 +29,8 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; +import static com.facebook.presto.common.predicate.ValueSet.ofRanges; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.DateType.DATE; import static com.facebook.presto.common.type.DoubleType.DOUBLE; @@ -45,8 +47,6 @@ import static com.facebook.presto.hive.HiveType.HIVE_INT; import static com.facebook.presto.hive.HiveType.HIVE_STRING; import static com.facebook.presto.hive.HiveType.HIVE_TIMESTAMP; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; -import static com.facebook.presto.spi.predicate.ValueSet.ofRanges; import static org.testng.Assert.assertEquals; public class TestIonSqlQueryBuilder diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java index 40ced75a05556..db3b23a10f2e1 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestOrcBatchPageSourceMemoryTracking.java @@ -14,7 +14,9 @@ package com.facebook.presto.hive; import com.facebook.airlift.stats.Distribution; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.metastore.Storage; import com.facebook.presto.hive.metastore.StorageFormat; @@ -35,13 +37,11 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableHandle; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java index dcab8ded839de..5fed9c69561ec 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestingSemiTransactionalHiveMetastore.java @@ -14,6 +14,7 @@ package com.facebook.presto.hive; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.authentication.NoHdfsAuthentication; import com.facebook.presto.hive.metastore.Column; @@ -33,7 +34,6 @@ import com.facebook.presto.hive.metastore.thrift.ThriftHiveMetastore; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.RoleGrant; import com.facebook.presto.spi.statistics.ColumnStatisticType; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java index 0c31b4c413509..fc240590196ae 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FileFormat.java @@ -14,6 +14,8 @@ package com.facebook.presto.hive.benchmark; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.hive.GenericHiveRecordCursorProvider; @@ -53,11 +55,9 @@ import com.facebook.presto.rcfile.text.TextRcFileEncoding; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.page.PagesSerde; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableMap; import io.airlift.slice.OutputStreamSliceOutput; import io.airlift.units.DataSize; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FormatWriter.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FormatWriter.java index d8fcb91cbc2db..8164becd4bf8b 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FormatWriter.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/FormatWriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.hive.benchmark; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import java.io.Closeable; import java.io.IOException; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java index d1e849c4e50a4..593d96de0b84e 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/benchmark/HiveFileFormatBenchmark.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.benchmark; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; @@ -25,8 +27,6 @@ import com.facebook.presto.hive.ParquetFileWriterConfig; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java index fad20bedee99b..31024527a6653 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/ParquetTester.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.parquet; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -42,8 +44,6 @@ import com.facebook.presto.parquet.writer.ParquetWriterOptions; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.testing.TestingConnectorSession; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java index 9aaaff5d3fda1..c22be33f49e85 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/parquet/predicate/TestParquetPredicateUtils.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive.parquet.predicate; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.MapType; import com.facebook.presto.common.type.RowType; @@ -20,8 +22,6 @@ import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveType; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -36,13 +36,13 @@ import java.util.Optional; import static com.facebook.presto.common.block.MethodHandleUtil.methodHandle; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetTupleDomain; import static com.facebook.presto.parquet.ParquetTypeUtils.getDescriptors; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32; import static org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT64; import static org.apache.parquet.schema.Type.Repetition.OPTIONAL; diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java index 8b1b13a35d061..9a749467c4aa5 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/util/TestMergingPageIterator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java index 352835ceee0ee..31a623d8be588 100644 --- a/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java +++ b/presto-jdbc/src/test/java/com/facebook/presto/jdbc/TestJdbcConnection.java @@ -14,6 +14,7 @@ package com.facebook.presto.jdbc; import com.facebook.airlift.log.Logging; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.hive.HiveHadoop2Plugin; import com.facebook.presto.server.testing.TestingPrestoServer; import com.facebook.presto.spi.ConnectorSession; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java index bf058fa273e61..f5c3a62830cdf 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxSplitManager.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.connector.jmx; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; @@ -22,8 +24,6 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -32,9 +32,9 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.predicate.TupleDomain.fromFixedValues; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.connector.jmx.JmxMetadata.NODE_COLUMN_NAME; -import static com.facebook.presto.spi.predicate.TupleDomain.fromFixedValues; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; diff --git a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxTableLayoutHandle.java b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxTableLayoutHandle.java index 12cf038ec7718..28598d90d445a 100644 --- a/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxTableLayoutHandle.java +++ b/presto-jmx/src/main/java/com/facebook/presto/connector/jmx/JmxTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.jmx; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java index 9c0844f67238c..8e4b73c50c2c4 100644 --- a/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java +++ b/presto-jmx/src/test/java/com/facebook/presto/connector/jmx/TestJmxSplitManager.java @@ -14,6 +14,8 @@ package com.facebook.presto.connector.jmx; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TimestampType; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.spi.ColumnHandle; @@ -29,8 +31,6 @@ import com.facebook.presto.spi.connector.ConnectorContext; import com.facebook.presto.spi.connector.ConnectorSplitManager.SplitSchedulingContext; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.TestingNodeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaMetadata.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaMetadata.java index 12144836297b4..a81d6ee4e800e 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaMetadata.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaMetadata.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.kafka; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Range; import com.facebook.presto.decoder.dummy.DummyRowDecoder; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -27,9 +30,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Range; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java index 8503d051c9f73..28060388a9593 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduClientSession.java @@ -14,6 +14,15 @@ package com.facebook.presto.kudu; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.DiscreteValues; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.EquatableValueSet; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.Ranges; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.kudu.properties.ColumnDesign; import com.facebook.presto.kudu.properties.HashPartitionDefinition; @@ -29,15 +38,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.DiscreteValues; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.EquatableValueSet; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.Ranges; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableList; import org.apache.kudu.ColumnSchema; import org.apache.kudu.ColumnTypeAttributes; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java index 114674942256f..06b4ce91a0abb 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduPageSink.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.SqlDate; @@ -20,7 +21,6 @@ import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.apache.kudu.client.KuduException; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableLayoutHandle.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableLayoutHandle.java index 605aa1e5a6661..aa2f23e22542b 100755 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableLayoutHandle.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java index a2efc5d1fd2a5..2e1a738665121 100644 --- a/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java +++ b/presto-kudu/src/main/java/com/facebook/presto/kudu/KuduUpdatablePageSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.kudu; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.UpdatablePageSource; import io.airlift.slice.Slice; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java index fab0dd4e85f05..5680cc7143009 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordCursor.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.Strings; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java index 18db23ec33dec..5b440ac43495b 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileRecordSet.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplit.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplit.java index fd21e17b949e7..8d3d98449de81 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplit.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplit.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplitManager.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplitManager.java index ceac5c86a7286..ec004022efd42 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplitManager.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.ConnectorSplitSource; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTableLayoutHandle.java b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTableLayoutHandle.java index 89f42359b6a7f..ec838b0693654 100644 --- a/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTableLayoutHandle.java +++ b/presto-local-file/src/main/java/com/facebook/presto/localfile/LocalFileTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileRecordSet.java b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileRecordSet.java index 33dc7c28bd45c..3b2fd937e2ff6 100644 --- a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileRecordSet.java +++ b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileRecordSet.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.localfile; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import org.testng.annotations.Test; import java.util.List; diff --git a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileSplit.java b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileSplit.java index b1933ebd5b170..299486a8724d1 100644 --- a/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileSplit.java +++ b/presto-local-file/src/test/java/com/facebook/presto/localfile/TestLocalFileSplit.java @@ -14,8 +14,8 @@ package com.facebook.presto.localfile; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java index 772892b9345e0..06dfb9e0818f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java +++ b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByHash; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java index d86d839a6dd48..e135188ba3fe2 100644 --- a/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/GroupByHashPageIndexerFactory.java @@ -13,8 +13,8 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageIndexer; import com.facebook.presto.spi.PageIndexerFactory; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java b/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java index de7be5665ee75..41b3113039605 100644 --- a/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java +++ b/presto-main/src/main/java/com/facebook/presto/PagesIndexPageSorter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java index 16314affe88ba..30d73ce9c7c58 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaMetadata.java @@ -15,6 +15,10 @@ import com.facebook.presto.FullConnectorSession; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.EquatableValueSet; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedObjectName; import com.facebook.presto.metadata.QualifiedTablePrefix; @@ -30,10 +34,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.EquatableValueSet; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java index e1e8691c267f9..f5e9b8902a8bd 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/informationSchema/InformationSchemaPageSourceProvider.java @@ -15,6 +15,7 @@ import com.facebook.presto.FullConnectorSession; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.InternalTable; import com.facebook.presto.metadata.Metadata; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java index 85da5179ae8e9..5be71db663e21 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/AbstractPropertiesSystemTable.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.session.PropertyMetadata; import com.facebook.presto.transaction.TransactionId; import com.facebook.presto.transaction.TransactionManager; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java index bcbe55a11151c..c501a5868df9b 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/CatalogSystemTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorId; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java index 29f15f6eb7f73..7495be91e69dc 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/NodeSystemTable.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.AllNodes; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.metadata.InternalNodeManager; @@ -25,7 +26,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java index 196f63415b066..87077b3143f06 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/QuerySystemTable.java @@ -15,6 +15,7 @@ import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryManager; @@ -28,7 +29,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.resourceGroups.ResourceGroupId; import io.airlift.units.Duration; import org.joda.time.DateTime; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java index 108c6a098afcc..9c82ccc1618f6 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemPageSourceProvider.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -28,8 +30,6 @@ import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.split.MappedPageSource; import com.facebook.presto.split.MappedRecordSet; import com.google.common.collect.ImmutableList; @@ -39,9 +39,9 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.facebook.presto.spi.StandardErrorCode.NOT_FOUND; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.lang.String.format; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplit.java b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplit.java index d7cd17a01e58f..b22af9b635a18 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplit.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplit.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplitManager.java b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplitManager.java index b852d346d2b96..c4426477029d0 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplitManager.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.metadata.InternalNodeManager; import com.facebook.presto.spi.ColumnHandle; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.SystemTable.Distribution; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemTableLayoutHandle.java b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemTableLayoutHandle.java index 6ab0dd90f8c54..04361251100b6 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/SystemTableLayoutHandle.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/SystemTableLayoutHandle.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.connector.system; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java index 1db02584af2cf..9c0c7b510ac86 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/TaskSystemTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system; import com.facebook.airlift.node.NodeInfo; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.execution.TaskInfo; import com.facebook.presto.execution.TaskManager; import com.facebook.presto.execution.TaskStatus; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import io.airlift.units.DataSize; import io.airlift.units.Duration; import org.joda.time.DateTime; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java index 981f0b0a955ab..5a0977baa47e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/TransactionsSystemTable.java @@ -15,6 +15,7 @@ import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.common.type.VarcharType; @@ -27,7 +28,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.transaction.TransactionInfo; import com.facebook.presto.transaction.TransactionManager; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java index ef4344901f688..bbd3d51466a05 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/AttributeJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java index 2c4f46473f6b4..aafdb08b78e01 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/CatalogJdbcTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system.jdbc; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorSession; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java index f5627587d627e..13eb3a735a4ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ColumnJdbcTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system.jdbc; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/FilterUtil.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/FilterUtil.java index 24c635995d843..05eb39c4d9584 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/FilterUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/FilterUtil.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.QualifiedTablePrefix; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java index dd08d7fbd63fb..c2922b1a80170 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureColumnJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java index 6d5a265975840..ce8a742701053 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/ProcedureJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java index 37a0070dcec83..0f041a870cd87 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/PseudoColumnJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java index 92d8dd1ed292a..d6df31759fd5a 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SchemaJdbcTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system.jdbc; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.security.AccessControl; import com.facebook.presto.spi.ConnectorSession; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java index fbb64d25a8f02..738f5805c38d4 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTableJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java index 51c61740d94db..55e92b998f2c0 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/SuperTypeJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java index 0b8d4e59cd0ac..c0251266b7fca 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableJdbcTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.system.jdbc; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.QualifiedTablePrefix; import com.facebook.presto.security.AccessControl; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java index 041fca8d1f69f..2cc3cc56d8c54 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TableTypeJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java index 99f3720e70906..932de7c273081 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/TypesJdbcTable.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ParametricType; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; @@ -23,7 +24,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java index 2577f6e9897f1..462fc9ceb9199 100644 --- a/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java +++ b/presto-main/src/main/java/com/facebook/presto/connector/system/jdbc/UdtJdbcTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.connector.system.jdbc; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/buffer/PageSplitterUtil.java b/presto-main/src/main/java/com/facebook/presto/execution/buffer/PageSplitterUtil.java index 4afede2982c58..71e3c78ced19e 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/buffer/PageSplitterUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/buffer/PageSplitterUtil.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.execution.buffer; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java b/presto-main/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java index ad348622e4b81..4a931313443b1 100644 --- a/presto-main/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java +++ b/presto-main/src/main/java/com/facebook/presto/execution/scheduler/TableWriteInfo.java @@ -15,6 +15,7 @@ package com.facebook.presto.execution.scheduler; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.AnalyzeTableHandle; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableLayoutResult; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.planner.optimizations.PlanNodeSearcher; import com.facebook.presto.sql.planner.plan.DeleteNode; import com.facebook.presto.sql.planner.plan.JoinNode; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java b/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java index cc48a96ac472f..526bbc35ad03e 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/InternalTable.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnMetadata; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java index 03e33c63a4cd5..98780ea45c54e 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/Metadata.java @@ -16,6 +16,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeSignature; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.function.SqlFunction; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java index 5ed3445a0a383..c7c54bb5618c9 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/MetadataManager.java @@ -21,6 +21,7 @@ import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeSignature; @@ -50,7 +51,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitioningMetadata; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.function.SqlFunction; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/ResolvedIndex.java b/presto-main/src/main/java/com/facebook/presto/metadata/ResolvedIndex.java index f7a078cdce054..0890bce5027ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/ResolvedIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/ResolvedIndex.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorResolvedIndex; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/TableLayout.java b/presto-main/src/main/java/com/facebook/presto/metadata/TableLayout.java index f6775196aee3d..0073b2891d84e 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/TableLayout.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/TableLayout.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorTableHandle; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.LocalProperty; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.planner.PartitioningHandle; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/TableLayoutResult.java b/presto-main/src/main/java/com/facebook/presto/metadata/TableLayoutResult.java index 64065ff81254b..2aaefa2a89552 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/TableLayoutResult.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/TableLayoutResult.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.metadata; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableMap; import java.util.Map; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java index 4b11f96e8cf55..0af670b88f8ef 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/AggregationOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.aggregation.AccumulatorFactory; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java b/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java index c92f287deca9a..526d440f72be2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/Aggregator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.AccumulatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ArrayPositionLinks.java b/presto-main/src/main/java/com/facebook/presto/operator/ArrayPositionLinks.java index e8bf10f95bbf0..f7081bf3f3a55 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ArrayPositionLinks.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ArrayPositionLinks.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import io.airlift.slice.Slices; import io.airlift.slice.XxHash64; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java index 070fa10889f58..2f3d62f4235df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/AssignUniqueIdOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.execution.TaskId; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import java.util.concurrent.atomic.AtomicLong; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java index 63fedf3196fd7..cd1c3b85a6eac 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/BigintGroupByHash.java @@ -15,12 +15,12 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.type.BigintOperators; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/BucketPartitionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/BucketPartitionFunction.java index 0826433aa46a5..c6ca750570938 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/BucketPartitionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/BucketPartitionFunction.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import java.util.stream.IntStream; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java b/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java index 65c529bc45d29..070b946773f47 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ChannelSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java index d2fb0fa12a431..9273d78ba2dff 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DeleteOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.execution.TaskId; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DevNullOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DevNullOperator.java index 313fdafbd2284..eb2c0d1a2355d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DevNullOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DevNullOperator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.plan.PlanNodeId; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java index ad412e676c8d0..20ad78fcf12fe 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/DistinctLimitOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/Driver.java b/presto-main/src/main/java/com/facebook/presto/operator/Driver.java index 0533c8fb66a3d..beb6941ee8866 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/Driver.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/Driver.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; import com.facebook.presto.metadata.Split; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/EmptyLookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/EmptyLookupSource.java index 5162b255fa91a..45e3214d10483 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/EmptyLookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/EmptyLookupSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; final class EmptyLookupSource implements LookupSource diff --git a/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java index b17298e0ce483..95fa2e189bee1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/EnforceSingleRowOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.ByteArrayBlock; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ExchangeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ExchangeOperator.java index fc4ebbeb46782..10e53c4c79dbc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ExchangeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ExchangeOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.metadata.Split; import com.facebook.presto.spi.ConnectorId; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java index 65d97a3120362..e8e1b20b17e05 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ExplainAnalyzeOperator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.execution.QueryInfo; import com.facebook.presto.execution.QueryPerformanceFetcher; import com.facebook.presto.execution.StageId; import com.facebook.presto.execution.StageInfo; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java index f3ceb3e8d301f..15e0fc5372c9b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/FilterAndProjectOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.project.MergingPageOutput; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/FinishedOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/FinishedOperator.java index c0959d3b77f35..997ff7cec417e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/FinishedOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/FinishedOperator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import static java.util.Objects.requireNonNull; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java index 1ae06b2347794..f98dad669e05a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupByHash.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java index 02ade9512d29d..a18f2fe31fb86 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupIdOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java index 24abb4c0b8798..e65a86e5ca35b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/GroupedTopNBuilder.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java index 1f58e3947a6c9..09795ae62c2ea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashAggregationOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.Accumulator; @@ -21,8 +23,6 @@ import com.facebook.presto.operator.aggregation.builder.InMemoryHashAggregationBuilder; import com.facebook.presto.operator.aggregation.builder.SpillableHashAggregationBuilder; import com.facebook.presto.operator.scalar.CombineHashFunction; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.SpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashBuilderOperator.java index f202d3787808c..9774a3977835c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashBuilderOperator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.SingleStreamSpiller; import com.facebook.presto.spiller.SingleStreamSpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashGenerator.java index 9a247f2faa821..dcd55d62344e5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashGenerator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; public interface HashGenerator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java index 0269d83a2a8a8..562c4b6020139 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/HashSemiJoinOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.SetBuilderOperator.SetSupplier; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/InternalJoinFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/InternalJoinFilterFunction.java index 6bf341ba058e7..f509493ebfd13 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/InternalJoinFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/InternalJoinFilterFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; public interface InternalJoinFilterFunction { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java index 8f52c1fb9ad01..43b55ab03e4ec 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/InterpretedHashGenerator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.scalar.CombineHashFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinFilterFunction.java index 8f1d0abd4c46f..c41a5ebd4e171 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinFilterFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinHash.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinHash.java index 885ea179d6b5d..057dba50b07b2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinHash.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import org.openjdk.jol.info.ClassLayout; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java index 9ea700f997d3a..21f1eee1a92e6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinHashSupplier.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java index 2ecb15ce4542f..bcaa216941a25 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinProbe.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import java.util.List; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java index 0307082f5cfe8..cc8ecdcfd6c52 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/JoinUtils.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java index 937a7f6a6d924..b2b27900bb77e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LimitOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java index 1ea5835cab24b..a308207d4648c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinOperator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; import com.facebook.presto.operator.LookupJoinOperators.JoinType; import com.facebook.presto.operator.LookupSourceProvider.LookupSourceLease; import com.facebook.presto.operator.PartitionedConsumption.Partition; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spiller.PartitioningSpiller; import com.facebook.presto.spiller.PartitioningSpiller.PartitioningSpillResult; import com.facebook.presto.spiller.PartitioningSpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java index 915909a86f60d..9b8d4958763fa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupJoinPageBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import it.unimi.dsi.fastutil.ints.IntArrayList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java index 1422785782463..c8bea190604f2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupOuterOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/LookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/LookupSource.java index 6016328ffe0ea..b69281505fc05 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/LookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/LookupSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java index 3560714f11039..70fd9e4b9bb4d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctHash.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java index 76b956dba0e37..eff6addeaa1bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MarkDistinctOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java b/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java index 2a5207010c1af..9056f77248c51 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MergeHashSort.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.util.MergeSortedPages.PageWithPosition; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java index 0b343dd149b13..551e772b125e8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MergeOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.metadata.Split; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java index 9a601be7c2387..ce6631b830de4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MetadataDeleteOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java index 9a778dc9a1e68..b058d4a594078 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/MultiChannelGroupByHash.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopBuildOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopBuildOperator.java index 9459b29dfe82b..74d24fe833735 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopBuildOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopBuildOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java index 921cb6c25c28d..79b56dd352eeb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.execution.Lifespan; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPages.java b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPages.java index a198b9a5efb35..35546b68b7068 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPages.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPages.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPagesBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPagesBuilder.java index 0bd3599c2a215..42556abcdb568 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPagesBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NestedLoopJoinPagesBuilder.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java b/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java index 492b92f0c5b3d..afd3d86ec8bd0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/NoChannelGroupByHash.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/Operator.java b/presto-main/src/main/java/com/facebook/presto/operator/Operator.java index f8f5affbbf4c0..68685cf8cd0f6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/Operator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/Operator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OperatorContext.java b/presto-main/src/main/java/com/facebook/presto/operator/OperatorContext.java index 2c3419fa81cba..6bafbc424353a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OperatorContext.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OperatorContext.java @@ -15,12 +15,12 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.memory.QueryContextVisitor; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.memory.context.MemoryTrackingContext; import com.facebook.presto.operator.OperationTimer.OperationTiming; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java index 65214930baa7d..550893717fd9f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OrderByOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OuterLookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/OuterLookupSource.java index db57e817e0931..884a8ff9548a0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OuterLookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OuterLookupSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import javax.annotation.concurrent.GuardedBy; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OuterPositionIterator.java b/presto-main/src/main/java/com/facebook/presto/operator/OuterPositionIterator.java index 6a945f44d309d..856ca346417f9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OuterPositionIterator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OuterPositionIterator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.PageBuilder; public interface OuterPositionIterator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java index 295023601391c..7e2aae1fdc843 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/OutputFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.OutputPartitioning; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PageSourceOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/PageSourceOperator.java index de4379b498aaa..c07bad8fcf196 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PageSourceOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PageSourceOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.google.common.util.concurrent.ListenableFuture; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PageWithPositionComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/PageWithPositionComparator.java index df33d303b0172..408e0fe4f39e9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PageWithPositionComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PageWithPositionComparator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; public interface PageWithPositionComparator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesHash.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesHash.java index cc88e927b29fa..62109c73fc5e2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesHash.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesHash.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import io.airlift.units.DataSize; import it.unimi.dsi.fastutil.HashCommon; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesHashStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesHashStrategy.java index a7534605f1028..14203bf9f10bd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesHashStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesHashStrategy.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; public interface PagesHashStrategy { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java index 73135d31b2b4c..30454f4893a73 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesIndex.java @@ -15,6 +15,8 @@ import com.facebook.airlift.log.Logger; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SortOrder; @@ -25,8 +27,6 @@ import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.sql.gen.JoinCompiler.LookupSourceSupplierFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java index cdf589b64ffd0..ffd2f2386d87a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesRTreeIndex.java @@ -16,6 +16,8 @@ import com.esri.core.geometry.ogc.OGCGeometry; import com.esri.core.geometry.ogc.OGCPoint; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.GeometryUtils; @@ -23,8 +25,6 @@ import com.facebook.presto.geospatial.rtree.Flatbush; import com.facebook.presto.geospatial.rtree.HasExtent; import com.facebook.presto.operator.SpatialIndexBuilderOperator.SpatialPredicate; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import io.airlift.slice.Slice; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndex.java b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndex.java index 2ad78e3c13d9d..cfa647217543c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndex.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PagesSpatialIndex.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PartitionFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/PartitionFunction.java index 0724cbaae3539..7c62dcc777ddc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PartitionFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PartitionFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; public interface PartitionFunction { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java index 574bb702261f0..aff88f5bb47a6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.io.Closer; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java index f4164aad0c496..14205927bfa48 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PartitionedLookupSourceFactory.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.LookupSourceProvider.LookupSourceLease; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PositionLinks.java b/presto-main/src/main/java/com/facebook/presto/operator/PositionLinks.java index 1ae26a260f441..8477767c6b760 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PositionLinks.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PositionLinks.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java index 16f4ab7e9fcda..95db736fc8ed3 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/PrecomputedHashGenerator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; -import com.facebook.presto.spi.Page; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java index 7f654d33623ac..2d552f7072d19 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.Comparator; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java index 466358e6be422..2cebf2022bc57 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/RowNumberOperator.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java index 44aee522fb2f5..c78057a7dc1d8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ScanFilterAndProjectOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -25,8 +27,6 @@ import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.TableHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java index dac5521a35deb..983822e0c1a79 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SetBuilderOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.ChannelSet.ChannelSetBuilder; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java index 03cb6a49efe7f..e0bbbace8e550 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java index 2ad90b04702e2..b0e8f01ce8c72 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SortedPositionLinks.java b/presto-main/src/main/java/com/facebook/presto/operator/SortedPositionLinks.java index 0e020f0ecd88b..de520a1901a44 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SortedPositionLinks.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SortedPositionLinks.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java index a74f4502f5fb1..f56ece7891cde 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SpatialIndexBuilderOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.esri.core.geometry.ogc.OGCGeometry; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.geospatial.KdbTreeUtils; import com.facebook.presto.geospatial.Rectangle; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java index 63e422142acd2..2604de406a50e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SpatialJoinOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.plan.SpatialJoinNode; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/StandardJoinFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/StandardJoinFilterFunction.java index 423c574b24493..26f30e9fa84c2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/StandardJoinFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/StandardJoinFilterFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java index b03d5d7a8d0b7..20a901f138428 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/StatisticsWriterOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.sql.planner.plan.StatisticAggregationsDescriptor; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java index 978147456b54d..9afb68706916e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/StreamingAggregationOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.aggregation.AccumulatorFactory; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java index 999a32fdc514e..0025a4358518b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableFinishOperator.java @@ -15,13 +15,13 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; import com.facebook.presto.operator.OperationTimer.OperationTiming; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableScanOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableScanOperator.java index 6ecebfd2fcf15..99de12f0f4e09 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableScanOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableScanOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.metadata.Split; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java index 6d359b7c05c4e..b4590a99a7279 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterMergeOperator.java @@ -15,14 +15,14 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.OperationTimer.OperationTiming; import com.facebook.presto.operator.aggregation.builder.InMemoryHashAggregationBuilder; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java index 08ff794d3a6c6..82d950713d63e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterOperator.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; @@ -26,7 +27,6 @@ import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.OperationTimer.OperationTiming; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.split.PageSinkManager; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java index 712880ce96fe4..88ecffee364bb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TableWriterUtils.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import io.airlift.slice.Slice; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java index d60df42bf77b5..519f2668e27fa 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TaskOutputOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.OutputBuffer; import com.facebook.presto.execution.buffer.PagesSerdeFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java index 2c26f1b1244ab..29ca992bfc59d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TopNOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java index af6fba89ddcb7..2eeca53e593a6 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/TopNRowNumberOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/ValuesOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/ValuesOperator.java index 2cf591204a943..51a1a2d152c5b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/ValuesOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/ValuesOperator.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterators; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java index a0b062489d7b1..548739e13ff4a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/WindowOperator.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.window.FramedWindowFunction; import com.facebook.presto.operator.window.WindowPartition; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java index 14333c261d8d4..8283aa104439c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AbstractGroupCollectionAggregationState.java @@ -15,9 +15,9 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.ShortBigArray; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.state.AbstractGroupedAccumulatorState; -import com.facebook.presto.spi.PageBuilder; import it.unimi.dsi.fastutil.longs.LongArrayList; import it.unimi.dsi.fastutil.longs.LongList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java index 296b26127943e..7afbb94e09cea 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/Accumulator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.WindowIndex; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java index dbc11a75a5c2c..249ac474a31e8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AccumulatorCompiler.java @@ -26,6 +26,7 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.expression.BytecodeExpressions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.ColumnarRow; @@ -34,7 +35,6 @@ import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.AccumulatorStateFactory; import com.facebook.presto.spi.function.AccumulatorStateSerializer; import com.facebook.presto.spi.function.WindowIndex; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java index 3c3ac7753cd6c..196df49387de8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/AggregationUtils.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.FunctionManager; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.aggregation.state.CovarianceState; import com.facebook.presto.operator.aggregation.state.RegressionState; import com.facebook.presto.operator.aggregation.state.VarianceState; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import com.google.common.base.CaseFormat; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java index 257ed111975da..e7d4a31a5b37a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GenericAccumulatorFactory.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SortOrder; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.UpdateMemory; import com.facebook.presto.operator.Work; import com.facebook.presto.operator.aggregation.AggregationMetadata.AccumulatorStateDescriptor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.WindowIndex; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java index 9ef1d85cbbcb3..ee1029fd64005 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/GroupedAccumulator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByIdBlock; -import com.facebook.presto.spi.Page; public interface GroupedAccumulator { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java index d7a891275d020..61480b0d912fd 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/arrayagg/GroupArrayAggregationState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.arrayagg; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.AbstractGroupCollectionAggregationState; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; public final class GroupArrayAggregationState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/HashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/HashAggregationBuilder.java index 69da6537255ea..f05633a40c9e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/HashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/HashAggregationBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.builder; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.HashCollisionsCounter; import com.facebook.presto.operator.Work; import com.facebook.presto.operator.WorkProcessor; -import com.facebook.presto.spi.Page; import com.google.common.util.concurrent.ListenableFuture; public interface HashAggregationBuilder diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java index c7f352ffa06df..a7371925b838d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/InMemoryHashAggregationBuilder.java @@ -14,6 +14,8 @@ package com.facebook.presto.operator.aggregation.builder; import com.facebook.presto.array.IntBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; @@ -28,8 +30,6 @@ import com.facebook.presto.operator.WorkProcessor.ProcessState; import com.facebook.presto.operator.aggregation.AccumulatorFactory; import com.facebook.presto.operator.aggregation.GroupedAccumulator; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java index 80cf1dc5d9910..67793140d53c5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/MergingHashAggregationBuilder.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation.builder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.OperatorContext; @@ -20,7 +21,6 @@ import com.facebook.presto.operator.WorkProcessor.Transformation; import com.facebook.presto.operator.WorkProcessor.TransformationState; import com.facebook.presto.operator.aggregation.AccumulatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java index 965bf6cb00777..0cec97eb5e991 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/builder/SpillableHashAggregationBuilder.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.aggregation.builder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.HashCollisionsCounter; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.Work; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.aggregation.AccumulatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spiller.Spiller; import com.facebook.presto.spiller.SpillerFactory; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java index 20587e5915aef..36feaee3226b2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/multimapagg/GroupedMultimapAggregationState.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.aggregation.multimapagg; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.AbstractGroupCollectionAggregationState; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; public final class GroupedMultimapAggregationState diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/BroadcastExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/BroadcastExchanger.java index f2f2881dd2120..81dc357793613 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/BroadcastExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/BroadcastExchanger.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSink.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSink.java index 9ac340e7cf5ce..d9da15499abf2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSink.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSink.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSinkOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSinkOperator.java index f0ab3cd847926..9b5a8f8665c1f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSinkOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSinkOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.LocalPlannerAware; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactoryId; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSource.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSource.java index 0852f5eab8a75..1ff04b5af4569 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.WorkProcessor.ProcessState; -import com.facebook.presto.spi.Page; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSourceOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSourceOperator.java index 826624e8e665f..5b0067b3b1ecf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSourceOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchangeSourceOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchanger.java index c66c20639fae5..0fc1dc384c5bf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalExchanger.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import static com.facebook.presto.operator.Operator.NOT_BLOCKED; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java index 6e7c56218523e..a61b25754f908 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalMergeSourceOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverContext; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.PageWithPositionComparator; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalPartitionGenerator.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalPartitionGenerator.java index 6b519c7c8dcd1..aa870e5295e37 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalPartitionGenerator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/LocalPartitionGenerator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.HashGenerator; import com.facebook.presto.operator.PartitionFunction; -import com.facebook.presto.spi.Page; import io.airlift.slice.XxHash64; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java index f0b69bfa4e95f..86dcf569f1332 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageChannelSelector.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import java.util.function.Function; import java.util.stream.IntStream; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageReference.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageReference.java index a7422236ab274..283daad708ba9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageReference.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PageReference.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import javax.annotation.concurrent.ThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java index dae0c210a9f10..5ec8be1154aba 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PartitioningExchanger.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.exchange; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.PartitionFunction; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import it.unimi.dsi.fastutil.ints.IntArrayList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PassthroughExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PassthroughExchanger.java index 2bee625bdfcac..90b025b911723 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/PassthroughExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/PassthroughExchanger.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import java.util.function.LongConsumer; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/exchange/RandomExchanger.java b/presto-main/src/main/java/com/facebook/presto/operator/exchange/RandomExchanger.java index a3788964717f0..f46faa2afbdee 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/exchange/RandomExchanger.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/exchange/RandomExchanger.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.exchange; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java index cef639ca810c4..c1c9d6f72c1df 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/DynamicTupleFilterFactory.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.operator.project.PageProjectionWithOutputs; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.facebook.presto.sql.relational.Expressions; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java index a0dd8bbc6d05f..b2ed8012cf397 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexBuildDriverFactoryProvider.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverFactory; import com.facebook.presto.operator.OperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java index d9915549545f1..498fe4a21029d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLoader.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; @@ -24,8 +26,6 @@ import com.facebook.presto.operator.PipelineContext; import com.facebook.presto.operator.TaskContext; import com.facebook.presto.spi.ConnectorId; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSource.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSource.java index daa3265718754..746de5d912578 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSource.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexLookupSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.operator.LookupSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshot.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshot.java index f6dfd11c2d4d6..a8c302f708f2d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshot.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshot.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.operator.LookupSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import javax.annotation.concurrent.Immutable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java index d684e64d314eb..f37f524117b7d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSnapshotBuilder.java @@ -14,14 +14,14 @@ package com.facebook.presto.operator.index; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.LookupSource; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.index.UnloadedIndexKeyRecordSet.UnloadedIndexKeyRecordCursor; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import io.airlift.units.DataSize; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSourceOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSourceOperator.java index 1baa0013cdb2c..dca0c644913e0 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSourceOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexSourceOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.metadata.Split; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.FinishedOperator; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.SplitOperatorInfo; import com.facebook.presto.spi.ConnectorIndex; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexedData.java b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexedData.java index aee956b0875e9..d883516c5c1f5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/IndexedData.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/IndexedData.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.index; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/PageBuffer.java b/presto-main/src/main/java/com/facebook/presto/operator/index/PageBuffer.java index cb8c9da12deb2..1481689d2e85a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/PageBuffer.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/PageBuffer.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.index; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/PageBufferOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/index/PageBufferOperator.java index 6d114600f993a..2bb981758ba04 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/PageBufferOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/PageBufferOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java index 92cb56f4517d0..ecae9db499b0f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/PageRecordSet.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/PagesIndexBuilderOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/index/PagesIndexBuilderOperator.java index 28b8deffe2c2a..faf68e6efcc64 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/PagesIndexBuilderOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/PagesIndexBuilderOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.DriverContext; import com.facebook.presto.operator.Operator; import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import javax.annotation.concurrent.ThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java b/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java index 1ed056e476b39..6456a7a8e3474 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/StreamingIndexedData.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.Driver; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import javax.annotation.concurrent.NotThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java index 427c1fa7147bc..bc32edf35490c 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.project.InputChannels; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.SelectedPositions; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java b/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java index f4ee53c7c75ca..dd50be2c8179d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/UnloadedIndexKeyRecordSet.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.index; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.GroupByHash; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/UpdateRequest.java b/presto-main/src/main/java/com/facebook/presto/operator/index/UpdateRequest.java index 295db64f086ae..3df8c51ba63bf 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/UpdateRequest.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/UpdateRequest.java @@ -14,7 +14,7 @@ package com.facebook.presto.operator.index; import com.facebook.airlift.concurrent.MoreFutures; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.SettableFuture; import javax.annotation.concurrent.ThreadSafe; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java index ec74544222530..714f083805197 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/ConstantPageProjection.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java index a1fd19522348f..7a3c50d136fb2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/CursorProcessor.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; public interface CursorProcessor diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java index dbe86890b1411..42436394baa64 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageFilter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.function.SqlFunctionProperties; -import com.facebook.presto.spi.Page; import java.util.Optional; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java index 0ce167755192f..4b01efcba8d21 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/DictionaryAwarePageProjection.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.DictionaryId; @@ -21,7 +22,6 @@ import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import javax.annotation.Nullable; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java index c296a07d1d627..bc8850802d755 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/GeneratedPageProjection.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java b/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java index 73a432f2ef656..a202121fe6bde 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/InputChannels.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.google.common.primitives.Ints; import java.util.Arrays; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java index 5ae1b8bc63440..9d3d6be87f48d 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/InputPageProjection.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java b/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java index aaa1dd50ba3c8..63202223f997f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/MergingPageOutput.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java index 5b69f2718ff30..a1ad59ff86439 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageFilter.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.function.SqlFunctionProperties; -import com.facebook.presto.spi.Page; public interface PageFilter { diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java index 007c606af7a15..979fc2cb801ae 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProcessor.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.project; import com.facebook.presto.array.ReferenceCountMap; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.DictionaryId; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.Work; import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.WorkProcessor.ProcessState; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.ExpressionProfiler; import com.google.common.annotations.VisibleForTesting; import io.airlift.slice.SizeOf; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java index 5a64605adfb58..24eaffffa743e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjection.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java index 5724567e348e9..0628ae9f4054b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/project/PageProjectionWithOutputs.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import java.util.Arrays; import java.util.List; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java index ffecc6e3bc62e..505e28c9cd421 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/OptimizedPartitionedOutputOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.repartition; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.ArrayAllocator; import com.facebook.presto.common.block.ArrayBlock; import com.facebook.presto.common.block.Block; @@ -38,7 +39,6 @@ import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SimpleArrayAllocator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java index c6674d11a91f5..d5a398b498cb1 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/repartition/PartitionedOutputOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.repartition; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; @@ -25,8 +27,6 @@ import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.operator.PartitionFunction; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java index 7d5a4d001c598..01c0ed381841f 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayConcatFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java index eb1aa913dda10..45998912b1f40 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayJoin.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -28,7 +29,6 @@ import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ReturnPlaceConvention; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ScalarImplementationChoice; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java index cf062339a09e4..f65e4c9798ffe 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayRemoveFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java index 5f42e93f50218..0b00399c85716 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayReverseFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java index 55a0b8a7678ce..7ae423c0218e9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayShuffleFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java index 0856638c50612..190faebd75f9e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraySortComparatorFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java index cd5460230db06..4dc9ae984fa28 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArrayTransformFunction.java @@ -22,6 +22,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -31,7 +32,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java index b1a3defa6e8db..ded5a6ce729b9 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/JoniRegexpReplaceLambdaFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java index 3ba1794139521..41c020a2bbe7b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConcatFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -26,7 +27,6 @@ import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java index 41c2d9e962b0b..c27837ba427ff 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DuplicateMapKeyException; @@ -29,7 +30,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java index 9345b394b8961..d13c69aa34d06 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapEntriesFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java index b05510c68767c..d9334bb427f52 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFilterFunction.java @@ -23,6 +23,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -34,7 +35,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java index 32e800d8369bb..a0c3e8bdf5a17 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapFromEntriesFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.SqlFunctionProperties; @@ -20,7 +21,6 @@ import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java index 686bca95a8ccb..f0f9339782db4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformKeyFunction.java @@ -23,6 +23,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -37,7 +38,6 @@ import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.spi.ErrorCodeSupplier; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java index dd75272eb05f2..3d147ee129ce4 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapTransformValueFunction.java @@ -24,6 +24,7 @@ import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.TryCatch; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -36,7 +37,6 @@ import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.spi.ErrorCodeSupplier; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java index eee0e2ec8a183..0860bbbc1ef9a 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SingleMapBlock; @@ -25,7 +26,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java index f34128b606864..9db70a8527fed 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MultimapFromEntriesFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -20,7 +21,6 @@ import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.aggregation.TypedSet; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java index 592806fbcfc1f..6c0e70547bb2e 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/Re2JRegexpReplaceLambdaFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java index 1f2ab53cbb08c..203b9054da8ba 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMapFunction.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java index 5d783ae605267..ec104fd5a6568 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/SplitToMultimapFunction.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java index 369281b4e50cc..16a18fe60b961 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ZipWithFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java index 65fae2afb81d1..2c7d690856c63 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperator.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.unnest; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LongArrayBlock; import com.facebook.presto.common.type.ArrayType; @@ -26,7 +27,6 @@ import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.repartition.PartitionedOutputOperator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowPartition.java b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowPartition.java index 9a4d9565b058f..22c72c3f5b720 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/window/WindowPartition.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/window/WindowPartition.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.window; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.operator.PagesHashStrategy; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.WindowIndex; import com.facebook.presto.sql.planner.plan.WindowNode.Frame.BoundType; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/server/PagesResponseWriter.java b/presto-main/src/main/java/com/facebook/presto/server/PagesResponseWriter.java index 5524c28ddc4d0..9d363bf5c86c5 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/PagesResponseWriter.java +++ b/presto-main/src/main/java/com/facebook/presto/server/PagesResponseWriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.server; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.page.SerializedPage; import com.google.common.reflect.TypeToken; import io.airlift.slice.OutputStreamSliceOutput; diff --git a/presto-main/src/main/java/com/facebook/presto/server/TaskResource.java b/presto-main/src/main/java/com/facebook/presto/server/TaskResource.java index 9a8bc72fc77a4..1cea323382441 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/TaskResource.java +++ b/presto-main/src/main/java/com/facebook/presto/server/TaskResource.java @@ -17,6 +17,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.stats.TimeStat; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.TaskId; import com.facebook.presto.execution.TaskInfo; import com.facebook.presto.execution.TaskManager; @@ -27,7 +28,6 @@ import com.facebook.presto.metadata.SessionPropertyManager; import com.facebook.presto.server.smile.Codec; import com.facebook.presto.server.smile.SmileCodec; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.sql.planner.PlanFragment; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java index 18ee5a567dcde..e373c1433c7f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/Query.java @@ -21,6 +21,7 @@ import com.facebook.presto.client.QueryResults; import com.facebook.presto.client.StageStats; import com.facebook.presto.client.StatementStats; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.common.type.StandardTypes; @@ -37,7 +38,6 @@ import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.ExchangeClient; import com.facebook.presto.spi.ErrorCode; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; diff --git a/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java b/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java index de296e2e26999..c9e3766ef172a 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java +++ b/presto-main/src/main/java/com/facebook/presto/server/protocol/RowIterable.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.server.protocol; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpiller.java index 6b8154e4476ed..5fba1f9c94588 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpiller.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.Page; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.PagesSerdeUtil; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java index 5e4bc6068edac..9030f18540774 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericPartitioningSpiller.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java index 785e35a9cfcfe..0d869df5f0b23 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/GenericSpiller.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.SpillContext; -import com.facebook.presto.spi.Page; import com.google.common.io.Closer; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpiller.java index 4f81e2c5ce4d2..9ceb1231e1c60 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/PartitioningSpiller.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spiller; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpiller.java index 40d32036edf34..82f95436cdd19 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/SingleStreamSpiller.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spiller; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/spiller/Spiller.java b/presto-main/src/main/java/com/facebook/presto/spiller/Spiller.java index 5ccc86c1fcef1..bfdd59be9d0e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/spiller/Spiller.java +++ b/presto-main/src/main/java/com/facebook/presto/spiller/Spiller.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spiller; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.util.concurrent.ListenableFuture; import java.io.Closeable; diff --git a/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java b/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java index da99cb7970ea7..e4b8713463ea9 100644 --- a/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java +++ b/presto-main/src/main/java/com/facebook/presto/split/EmptySplitPageSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.split; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java b/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java index fdad012eeb18e..67ba48edb8f78 100644 --- a/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java +++ b/presto-main/src/main/java/com/facebook/presto/split/MappedPageSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.split; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.google.common.primitives.Ints; import java.io.IOException; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java index 1287f52e16e6e..1a876b14c3f8f 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CursorProcessorCompiler.java @@ -23,13 +23,13 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.control.WhileLoop; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.CursorProcessorOutput; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java index 36ffd4683a802..96e1cbcb27f12 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinCompiler.java @@ -28,6 +28,8 @@ import com.facebook.presto.bytecode.control.IfStatement; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.OperatorType; @@ -42,8 +44,6 @@ import com.facebook.presto.operator.PagesHash; import com.facebook.presto.operator.PagesHashStrategy; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinFilterFunctionCompiler.JoinFilterFunctionFactory; import com.google.common.cache.CacheBuilder; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java index b45f1106292e4..69f16fb35bbe3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/JoinFilterFunctionCompiler.java @@ -23,13 +23,13 @@ import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.InternalJoinFilterFunction; import com.facebook.presto.operator.JoinFilterFunction; import com.facebook.presto.operator.StandardJoinFilterFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java index 29167c116cd3e..f54d26c533251 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/OrderingCompiler.java @@ -22,6 +22,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.expression.BytecodeExpression; import com.facebook.presto.bytecode.instruction.LabelNode; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; @@ -32,7 +33,6 @@ import com.facebook.presto.operator.SimplePageWithPositionComparator; import com.facebook.presto.operator.SimplePagesIndexComparator; import com.facebook.presto.operator.SyntheticAddress; -import com.facebook.presto.spi.Page; import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 706fccee48775..832cceb4d4b74 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -24,6 +24,7 @@ import com.facebook.presto.bytecode.Variable; import com.facebook.presto.bytecode.control.ForLoop; import com.facebook.presto.bytecode.control.IfStatement; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.SqlFunctionProperties; @@ -38,7 +39,6 @@ import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java index 2df2042b4bdb8..113bcf79806b7 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/RowExpressionPredicateCompiler.java @@ -20,15 +20,15 @@ import com.facebook.presto.bytecode.Parameter; import com.facebook.presto.bytecode.Scope; import com.facebook.presto.bytecode.Variable; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.project.PageFieldsToInputParametersRewriter; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.relation.InputReferenceExpression; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; -import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.RowExpressionVisitor; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java index a8f43c40edb84..dfe058ba40150 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/ExpressionDomainTranslator.java @@ -15,21 +15,21 @@ import com.facebook.presto.Session; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.DiscreteValues; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.Ranges; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.OperatorNotFoundException; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.predicate.DiscreteValues; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.Ranges; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.InterpretedFunctionInvoker; import com.facebook.presto.sql.analyzer.ExpressionAnalyzer; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java index 6b4296c189a76..42e64d24958cc 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LocalExecutionPlanner.java @@ -16,6 +16,8 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; @@ -115,8 +117,6 @@ import com.facebook.presto.operator.window.WindowFunctionSupplier; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorIndex; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.TableHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java index da2467db178ee..371908d20c39b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/LogicalPlanner.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.CachingCostProvider; import com.facebook.presto.cost.CachingStatsProvider; @@ -41,7 +42,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spi.statistics.TableStatisticsMetadata; import com.facebook.presto.sql.analyzer.Analysis; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java index ee799e23b611a..c566b6589bb50 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/PlanFragmenter.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.execution.QueryManagerConfig; import com.facebook.presto.execution.QueryManagerConfig.ExchangeMaterializationStrategy; @@ -45,7 +46,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java index 9022fa44fa6e2..99ec62327ffc5 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/QueryPlanner.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; @@ -31,7 +32,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java index a13e395cb2d94..35f658d972ad6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/RelationPlanner.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.MapType; import com.facebook.presto.common.type.RowType; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.ExpressionUtils; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java index 8c84742b8525b..e8eb5d3ff463d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/SystemPartitioningHandle.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.scheduler.NodeScheduler; import com.facebook.presto.execution.scheduler.nodeSelection.NodeSelector; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.PrecomputedHashGenerator; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java index 091faf925f3c9..046e839ea5eb7 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/ExtractSpatialJoins.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.Constraint; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.function.FunctionHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java index ad3078b09e35b..d2106373519d8 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PickTableLayout.java @@ -14,6 +14,8 @@ package com.facebook.presto.sql.planner.iterative.rule; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.expressions.LogicalRowExpressions; @@ -31,8 +33,6 @@ import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DomainTranslator; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneIndexSourceColumns.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneIndexSourceColumns.java index c86d55827c36e..cb753ad460db3 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneIndexSourceColumns.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/PruneIndexSourceColumns.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.facebook.presto.sql.planner.plan.IndexSourceNode; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/IndexJoinOptimizer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/IndexJoinOptimizer.java index 1e94bd187f258..e1720adb1346d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/IndexJoinOptimizer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/IndexJoinOptimizer.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.ResolvedIndex; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java index 0728197b89278..1472bfe0a7c6d 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/MetadataQueryOptimizer.java @@ -16,6 +16,8 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; import com.facebook.presto.common.function.QualifiedFunctionName; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableLayout; @@ -33,8 +35,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.ExpressionDeterminismEvaluator; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java index 3ecae226f15bf..5e605991a3ffd 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/PropertyDerivations.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.SystemSessionProperties; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; @@ -94,7 +94,7 @@ import static com.facebook.presto.SystemSessionProperties.isOptimizeFullOuterJoinWithCoalesce; import static com.facebook.presto.SystemSessionProperties.planWithTableNodePartitioning; -import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValuesToConstantExpressions; +import static com.facebook.presto.common.predicate.TupleDomain.toLinkedMap; import static com.facebook.presto.spi.relation.DomainTranslator.BASIC_COLUMN_EXTRACTOR; import static com.facebook.presto.spi.relation.ExpressionOptimizer.Level.OPTIMIZED; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; @@ -880,4 +880,20 @@ public static boolean arePartitionHandlesCompatibleForCoalesce(PartitioningHandl { return a.equals(b) || metadata.isRefinedPartitioningOver(session, a, b) || metadata.isRefinedPartitioningOver(session, b, a); } + + /** + * Extract all column constraints that require exactly one value or only null in their respective Domains. + * Returns an empty Optional if the Domain is none. + */ + public static Optional> extractFixedValuesToConstantExpressions(TupleDomain tupleDomain) + { + if (!tupleDomain.getDomains().isPresent()) { + return Optional.empty(); + } + + return Optional.of(tupleDomain.getDomains().get() + .entrySet().stream() + .filter(entry -> entry.getValue().isNullableSingleValue()) + .collect(toLinkedMap(Map.Entry::getKey, entry -> new ConstantExpression(entry.getValue().getNullableSingleValue(), entry.getValue().getType())))); + } } diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/StreamPropertyDerivations.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/StreamPropertyDerivations.java index 5c2013ee9397b..62f2cafeeab55 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/StreamPropertyDerivations.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/StreamPropertyDerivations.java @@ -77,9 +77,9 @@ import java.util.function.Function; import java.util.stream.Collectors; -import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValuesToConstantExpressions; import static com.facebook.presto.sql.planner.PlannerUtils.toVariableReference; import static com.facebook.presto.sql.planner.SystemPartitioningHandle.FIXED_ARBITRARY_DISTRIBUTION; +import static com.facebook.presto.sql.planner.optimizations.PropertyDerivations.extractFixedValuesToConstantExpressions; import static com.facebook.presto.sql.planner.optimizations.StreamPropertyDerivations.StreamProperties.StreamDistribution.FIXED; import static com.facebook.presto.sql.planner.optimizations.StreamPropertyDerivations.StreamProperties.StreamDistribution.MULTIPLE; import static com.facebook.presto.sql.planner.optimizations.StreamPropertyDerivations.StreamProperties.StreamDistribution.SINGLE; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java index 141dbfd433821..68b403f471d01 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/optimizations/WindowFilterPushDown.java @@ -14,6 +14,10 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.Metadata; @@ -23,10 +27,6 @@ import com.facebook.presto.spi.plan.LimitNode; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.ExpressionUtils; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; @@ -46,8 +46,8 @@ import java.util.OptionalInt; import static com.facebook.presto.SystemSessionProperties.isOptimizeTopNRowNumber; +import static com.facebook.presto.common.predicate.Marker.Bound.BELOW; import static com.facebook.presto.common.type.BigintType.BIGINT; -import static com.facebook.presto.spi.predicate.Marker.Bound.BELOW; import static com.facebook.presto.sql.planner.ExpressionDomainTranslator.ExtractionResult; import static com.facebook.presto.sql.planner.ExpressionDomainTranslator.fromPredicate; import static com.facebook.presto.sql.planner.plan.ChildReplacer.replaceChildren; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/IndexSourceNode.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/IndexSourceNode.java index 509adb01dddf2..a09456549d96b 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/IndexSourceNode.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/plan/IndexSourceNode.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner.plan; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.IndexHandle; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeId; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java index 4cdd116538085..b8b34eafd94ad 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/IOPlanPrinter.java @@ -14,6 +14,10 @@ package com.facebook.presto.sql.planner.planPrinter; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Marker.Bound; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.common.type.IntegerType; @@ -31,10 +35,6 @@ import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Marker.Bound; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.planner.plan.InternalPlanVisitor; import com.facebook.presto.sql.planner.plan.TableFinishNode; import com.facebook.presto.sql.planner.plan.TableWriterNode.WriterTarget; @@ -52,8 +52,8 @@ import java.util.Set; import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.common.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; -import static com.facebook.presto.spi.predicate.Marker.Bound.EXACTLY; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableSet.toImmutableSet; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java index 75cb329e6cbf3..63e46ac7826e6 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/planner/planPrinter/PlanPrinter.java @@ -14,6 +14,10 @@ package com.facebook.presto.sql.planner.planPrinter; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.cost.PlanCostEstimate; import com.facebook.presto.cost.PlanNodeStatsEstimate; @@ -44,10 +48,6 @@ import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java index a7937b466308a..39729d3908751 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/relational/RowExpressionDomainTranslator.java @@ -15,7 +15,16 @@ import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.DiscreteValues; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.Ranges; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.predicate.Utils; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.FunctionManager; @@ -25,15 +34,6 @@ import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionMetadata; import com.facebook.presto.spi.function.StandardFunctionResolution; -import com.facebook.presto.spi.predicate.DiscreteValues; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.Ranges; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.spi.relation.DeterminismEvaluator; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java b/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java index bb02bcb64ef85..2cdfe990f5d40 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/MaterializedResult.java @@ -14,6 +14,8 @@ package com.facebook.presto.testing; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -31,8 +33,6 @@ import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoWarning; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java b/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java index 997d53772d733..0f0e2af3f5ff4 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/NullOutputOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.DriverContext; @@ -20,7 +21,6 @@ import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.OutputFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.OutputPartitioning; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java b/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java index dc32390f124c3..2ac6361a1bb93 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/PageConsumerOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.operator.DriverContext; @@ -20,7 +21,6 @@ import com.facebook.presto.operator.OperatorContext; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.OutputFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.OutputPartitioning; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java index ed3d3f023d256..c4f9070e1ec78 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.ViewNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; import com.facebook.presto.spi.statistics.ComputedStatistics; diff --git a/presto-main/src/main/java/com/facebook/presto/testing/TestingPageSinkProvider.java b/presto-main/src/main/java/com/facebook/presto/testing/TestingPageSinkProvider.java index e517c61c9c9f1..006436c35b985 100644 --- a/presto-main/src/main/java/com/facebook/presto/testing/TestingPageSinkProvider.java +++ b/presto-main/src/main/java/com/facebook/presto/testing/TestingPageSinkProvider.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.testing; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java index 8293a385dd280..57a821ab624e6 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.DecimalType; @@ -23,7 +24,6 @@ import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.operator.HashGenerator; import com.facebook.presto.operator.InterpretedHashGenerator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java b/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java index dac3af75f26e1..f27d27fadb0e4 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java +++ b/presto-main/src/main/java/com/facebook/presto/util/MergeSortedPages.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; @@ -22,8 +24,6 @@ import com.facebook.presto.operator.WorkProcessor; import com.facebook.presto.operator.WorkProcessor.ProcessState; import com.facebook.presto.operator.WorkProcessor.TransformationState; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import java.util.Comparator; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java b/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java index b1776d9e8cd54..be8e0381fea0d 100644 --- a/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java +++ b/presto-main/src/test/java/com/facebook/presto/BenchmarkPagesIndexPageSorter.java @@ -14,11 +14,11 @@ package com.facebook.presto; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.PageBuilderStatus; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java b/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java index 49e1640f8d0f2..fd9cce1568f32 100644 --- a/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/RowPageBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java b/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java index 6fe74902c8323..56b83d5b26855 100644 --- a/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/RowPagesBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java b/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java index 5f3ca7c851c32..058590c147a0a 100644 --- a/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/SequencePageBuilder.java @@ -14,11 +14,11 @@ package com.facebook.presto; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarcharType; -import com.facebook.presto.spi.Page; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java b/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java index 39962895f5d90..bf2eaa2bdfe9c 100644 --- a/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java +++ b/presto-main/src/test/java/com/facebook/presto/TestPagesIndexPageSorter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java b/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java index 208f5b565605d..2f479d6e71093 100644 --- a/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/block/TestBlockBuilder.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.block; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/connector/system/TestSystemSplit.java b/presto-main/src/test/java/com/facebook/presto/connector/system/TestSystemSplit.java index a972963ed507b..9e8259cc6427b 100644 --- a/presto-main/src/test/java/com/facebook/presto/connector/system/TestSystemSplit.java +++ b/presto-main/src/test/java/com/facebook/presto/connector/system/TestSystemSplit.java @@ -14,9 +14,9 @@ package com.facebook.presto.connector.system; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import org.testng.annotations.Test; import static com.facebook.airlift.json.JsonCodec.jsonCodec; diff --git a/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java b/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java index 4ac38022f2430..4b4d0f0923cea 100644 --- a/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java +++ b/presto-main/src/test/java/com/facebook/presto/cost/TestCostCalculator.java @@ -14,6 +14,7 @@ package com.facebook.presto.cost; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.NodeTaskMap; import com.facebook.presto.execution.QueryManagerConfig; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java b/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java index f782d4e71450c..409e8e2cd0e35 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/MockRemoteTaskFactory.java @@ -15,6 +15,7 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.execution.NodeTaskMap.PartitionedSplitCountTracker; import com.facebook.presto.execution.buffer.LazyOutputBuffer; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spiller.SpillSpaceTracker; import com.facebook.presto.sql.planner.Partitioning; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java b/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java index 424b377838a36..7f27fca11c5fe 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TaskTestUtils.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.ObjectMapperProvider; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.event.SplitMonitor; @@ -39,7 +40,6 @@ import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.spiller.GenericSpillerFactory; import com.facebook.presto.split.PageSinkManager; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java b/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java index 21dd125e5d6f7..e6c348117a592 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestPageSplitterUtil.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java index c9061f820466e..e6c7a367f344c 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestSqlTaskExecution.java @@ -15,6 +15,7 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.BufferResult; @@ -43,7 +44,6 @@ import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java b/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java index 571727f00a5dc..27b4c24e83a59 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/TestingPageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.execution; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.ByteArrayBlock; import com.facebook.presto.spi.ColumnHandle; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java index 7614d931a84de..9b78aa739d924 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/BufferTestUtils.java @@ -14,11 +14,11 @@ package com.facebook.presto.execution.buffer; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.operator.PageAssertions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java index 80a1726c62f3f..f353d1f16ab1b 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestArbitraryOutputBuffer.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java index e32a47582a824..b05cbd0c41e1c 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestBroadcastOutputBuffer.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.memory.context.MemoryReservationHandler; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java index a9f0022e609d2..e2369e6123543 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestClientBuffer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.buffer.ClientBuffer.PagesSupplier; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java index ed2d5ec986cb9..f0a263bd6c646 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPagesSerde.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.google.common.collect.ImmutableList; import io.airlift.slice.DynamicSliceOutput; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java index 6a10d770abfc4..3e6fd5bb38be3 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestPartitionedOutputBuffer.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.execution.buffer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.execution.StateMachine; import com.facebook.presto.execution.buffer.OutputBuffers.OutputBufferId; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import io.airlift.units.DataSize; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java index c8b69b03503c8..d8c61b96fc3de 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/buffer/TestingPagesSerdeFactory.java @@ -14,9 +14,9 @@ package com.facebook.presto.execution.buffer; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.TestingTypeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PageCompressor; import com.facebook.presto.spi.page.PageDecompressor; import com.facebook.presto.spi.page.PagesSerde; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java index da2a5488d7d9b..cd1fd1ae5cdaa 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestPhasedExecutionSchedule.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.execution.scheduler; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.operator.StageExecutionDescriptor; import com.facebook.presto.spi.ConnectorId; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.Partitioning; import com.facebook.presto.sql.planner.PartitioningScheme; diff --git a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java index cf5c2987c9abe..5412515ebcefe 100644 --- a/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java +++ b/presto-main/src/test/java/com/facebook/presto/execution/scheduler/TestSourcePartitionedScheduler.java @@ -14,6 +14,7 @@ package com.facebook.presto.execution.scheduler; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.execution.LocationFactory; import com.facebook.presto.execution.MockRemoteTaskFactory; @@ -41,7 +42,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitionHandle; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.split.ConnectorAwareSplitSource; import com.facebook.presto.split.SplitSource; diff --git a/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryPools.java b/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryPools.java index a132a485b2b27..099266c05293d 100644 --- a/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryPools.java +++ b/presto-main/src/test/java/com/facebook/presto/memory/TestMemoryPools.java @@ -15,6 +15,7 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.buffer.TestingPagesSerdeFactory; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.Driver; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.operator.TableScanOperator; import com.facebook.presto.operator.TaskContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.memory.MemoryPoolId; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java index 47634f67dc94a..2d9461ff87ce0 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/AbstractMockMetadata.java @@ -16,6 +16,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.CatalogSchemaName; import com.facebook.presto.common.block.BlockEncodingSerde; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeSignature; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.connector.ConnectorCapabilities; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.function.SqlFunction; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java index a178148727881..4a1561dfd809f 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestInformationSchemaMetadata.java @@ -15,6 +15,9 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.connector.MockConnectorFactory; import com.facebook.presto.connector.informationSchema.InformationSchemaColumnHandle; import com.facebook.presto.connector.informationSchema.InformationSchemaMetadata; @@ -29,9 +32,6 @@ import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.Connector; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.testing.TestingConnectorContext; import com.facebook.presto.transaction.TransactionId; diff --git a/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java b/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java index 0bbd0bb9117f1..7a29b599f3534 100644 --- a/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java +++ b/presto-main/src/test/java/com/facebook/presto/metadata/TestTableLayoutResult.java @@ -14,10 +14,10 @@ package com.facebook.presto.metadata; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TestingColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -101,7 +101,7 @@ private void assertComputeEnforcedFails(TupleDomain predicate, Tup { try { TupleDomain enforced = computeEnforced(predicate, unenforced); - fail(String.format("expected IllegalArgumentException but found [%s]", enforced.toString(SESSION))); + fail(String.format("expected IllegalArgumentException but found [%s]", enforced.toString(SESSION.getSqlFunctionProperties()))); } catch (IllegalArgumentException e) { // do nothing @@ -112,7 +112,7 @@ private void assertComputeEnforced(TupleDomain predicate, TupleDom { TupleDomain enforced = computeEnforced(predicate, unenforced); if (!enforced.equals(expectedEnforced)) { - fail(String.format("expected [%s] but found [%s]", expectedEnforced.toString(SESSION), enforced.toString(SESSION))); + fail(String.format("expected [%s] but found [%s]", expectedEnforced.toString(SESSION.getSqlFunctionProperties()), enforced.toString(SESSION.getSqlFunctionProperties()))); } } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java index a2fd477a32075..009611bcbd6cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupByHash.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.type.BigintOperators; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java index cf66a65cefb6b..4d5fee78d7844 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkGroupedTopNBuilder.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import io.airlift.tpch.LineItem; import io.airlift.tpch.LineItemGenerator; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java index 53b9c2b0558e8..82d7c763927fb 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashAndStreamingAggregationOperators.java @@ -14,13 +14,13 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.HashAggregationOperator.HashAggregationOperatorFactory; import com.facebook.presto.operator.StreamingAggregationOperator.StreamingAggregationOperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.SpillerFactory; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java index e1abd59e36a89..4c73f6377a612 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkHashBuildAndJoinOperators.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.HashBuilderOperator.HashBuilderOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.SingleStreamSpillerFactory; import com.facebook.presto.testing.TestingTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java index d22074eab13e3..d240874106aea 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkUnnestOperator.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeSignature; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.operator.unnest.UnnestOperator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java index 13bd895e19039..f07e0aa74a0ba 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/BenchmarkWindowOperator.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java b/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java index dca29f874665b..1fdb51d811d0f 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/GroupByHashYieldAssertion.java @@ -15,10 +15,10 @@ import com.facebook.airlift.stats.TestingGcMonitor; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.MemoryPool; import com.facebook.presto.memory.QueryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.QueryId; import com.facebook.presto.spi.memory.MemoryPoolId; import com.facebook.presto.spiller.SpillSpaceTracker; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/MockExchangeRequestProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/MockExchangeRequestProcessor.java index d82f1ce6969e4..2de45764a0ef2 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/MockExchangeRequestProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/MockExchangeRequestProcessor.java @@ -19,8 +19,8 @@ import com.facebook.airlift.http.client.testing.TestingHttpClient; import com.facebook.airlift.http.client.testing.TestingResponse; import com.facebook.presto.client.PrestoHeaders; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.buffer.BufferResult; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.PagesSerdeUtil; import com.facebook.presto.spi.page.SerializedPage; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java b/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java index 56d9d472217b8..b5c08bd7eff09 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/OperatorAssertion.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RowBlockBuilder; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java index dfea2a2354880..548d2dc42c4e0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/PageAssertions.java @@ -15,11 +15,11 @@ import com.facebook.presto.block.BlockAssertions; import com.facebook.presto.block.BlockAssertions.Encoding; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java index 5847189262dd9..cbdd5fac8fb3b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestAggregationOperator.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.AggregationOperator.AggregationOperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java index 1ff2bffe88b34..181b96ed5efc0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestColumnarPageProcessor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java index cb698351fbb36..6c3f4b56203bd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestDistinctLimitOperator.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java b/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java index b18773e08851c..805b8da76b829 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestDriver.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.ScheduledSplit; import com.facebook.presto.execution.TaskSource; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java index 85071bf03196c..c8a67e2a3c567 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeClient.java @@ -17,9 +17,9 @@ import com.facebook.airlift.http.client.Response; import com.facebook.airlift.http.client.testing.TestingHttpClient; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.execution.TaskId; import com.facebook.presto.memory.context.SimpleLocalMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java index 8665ccb5a342e..b01e6982bc1ba 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestExchangeOperator.java @@ -15,6 +15,7 @@ import com.facebook.airlift.http.client.HttpClient; import com.facebook.airlift.http.client.testing.TestingHttpClient; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Location; import com.facebook.presto.execution.TaskId; @@ -23,7 +24,6 @@ import com.facebook.presto.metadata.RemoteTransactionHandle; import com.facebook.presto.metadata.Split; import com.facebook.presto.operator.ExchangeOperator.ExchangeOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.split.RemoteSplit; import com.google.common.cache.CacheBuilder; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java index 996d84de0cdcb..eaee522ac93d4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestFilterAndProjectOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.gen.ExpressionCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java index bddd935d0988c..96f033c0125bd 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupByHash.java @@ -15,13 +15,13 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.DictionaryId; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.facebook.presto.testing.TestingSession; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java index 565a04e860507..72b2ddc47422b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupIdOperator.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.GroupIdOperator.GroupIdOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java index 948e932fe9d50..5a471722953c6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestGroupedTopNBuilder.java @@ -15,8 +15,8 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.array.ObjectBigArray; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java index d2d7a3d914c97..b55d29e135fe5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashAggregationOperator.java @@ -15,6 +15,7 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.ByteArrayBlock; @@ -28,7 +29,6 @@ import com.facebook.presto.operator.aggregation.InternalAggregationFunction; import com.facebook.presto.operator.aggregation.builder.HashAggregationBuilder; import com.facebook.presto.operator.aggregation.builder.InMemoryHashAggregationBuilder; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode.Step; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.Spiller; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java index 78fbf54d4e8ae..da6ecdacf5e98 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashJoinOperator.java @@ -16,6 +16,7 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.execution.TaskId; @@ -29,7 +30,6 @@ import com.facebook.presto.operator.exchange.LocalExchangeSourceOperator.LocalExchangeSourceOperatorFactory; import com.facebook.presto.operator.index.PageBuffer; import com.facebook.presto.operator.index.PageBufferOperator.PageBufferOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spiller.GenericPartitioningSpillerFactory; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java index ba3504ae2dc47..d83f3f645121c 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestHashSemiJoinOperator.java @@ -15,10 +15,10 @@ import com.facebook.presto.ExceededMemoryLimitException; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.HashSemiJoinOperator.HashSemiJoinOperatorFactory; import com.facebook.presto.operator.SetBuilderOperator.SetBuilderOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java index db03964eeaa2b..01d809d78df71 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestLimitOperator.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.LimitOperator.LimitOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java index 30264a3a6f6c5..671735f66d1ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestLookupJoinPageBuilder.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.JoinProbe.JoinProbeFactory; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java index 0eb3e66f5820e..1ec5a08131e7a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMarkDistinctOperator.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.MarkDistinctOperator.MarkDistinctOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java index 3f3434be14a85..6ce80797840c6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeHashSort.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java index 90544b06902dd..65200cef7b560 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestMergeOperator.java @@ -15,6 +15,7 @@ import com.facebook.airlift.http.client.HttpClient; import com.facebook.airlift.http.client.testing.TestingHttpClient; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Location; @@ -23,7 +24,6 @@ import com.facebook.presto.execution.buffer.TestingPagesSerdeFactory; import com.facebook.presto.metadata.RemoteTransactionHandle; import com.facebook.presto.metadata.Split; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.split.RemoteSplit; import com.facebook.presto.sql.gen.OrderingCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java index fee5b9f8fd937..6e604f0171b6f 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopBuildOperator.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.TestingTaskContext; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java index 3ee3b91188145..5be425ef515b9 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestNestedLoopJoinOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.NestedLoopBuildOperator.NestedLoopBuildOperatorFactory; import com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopJoinOperatorFactory; import com.facebook.presto.operator.NestedLoopJoinOperator.NestedLoopPageBuilder; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestOperatorAssertion.java b/presto-main/src/test/java/com/facebook/presto/operator/TestOperatorAssertion.java index 7756487af41e9..97e0b10a6ffcc 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestOperatorAssertion.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestOperatorAssertion.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.testing.assertions.Assert; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java index 07ae48d0634b9..0b053026c6247 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestOrderByOperator.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.ExceededMemoryLimitException; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.OrderByOperator.OrderByOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPageBufferClient.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPageBufferClient.java index 44d1c891d3ce3..530f6f0da49d3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPageBufferClient.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPageBufferClient.java @@ -19,9 +19,9 @@ import com.facebook.airlift.http.client.testing.TestingHttpClient; import com.facebook.airlift.http.client.testing.TestingResponse; import com.facebook.airlift.testing.TestingTicker; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.PageBufferClient.ClientCallback; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.google.common.collect.ImmutableListMultimap; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java index 4931a811d2c3d..c657becebb473 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPagesIndex.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java index f3e7eb959725c..fa4de3f0dcfd1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPartitionedOutputOperator.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; @@ -24,7 +25,6 @@ import com.facebook.presto.memory.context.SimpleLocalMemoryContext; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.operator.repartition.PartitionedOutputOperator; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.OutputPartitioning; import com.facebook.presto.testing.TestingTaskContext; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java b/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java index 1d60b40721c8f..db424e078e711 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestPositionLinks.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.longs.LongArrayList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java index c772b12b72409..fb3124684925f 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestRowNumberOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java index b3496dd9d30cb..65e07b89452b4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestScanFilterAndProjectOperator.java @@ -15,6 +15,7 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LazyBlockLoader; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java index 1308536035f49..f7c55caff36ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestStreamingAggregationOperator.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.StreamingAggregationOperator.StreamingAggregationOperatorFactory; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.AggregationNode; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java index 834b14848853c..dd47206f0065b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTableWriterOperator.java @@ -16,6 +16,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; @@ -34,7 +35,6 @@ import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java index ec41d3815bc14..90e62f752a9d8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNOperator.java @@ -14,8 +14,8 @@ package com.facebook.presto.operator; import com.facebook.presto.ExceededMemoryLimitException; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.TopNOperator.TopNOperatorFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java index b70e0a269db1e..b79b63fa66770 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestTopNRowNumberOperator.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java index d64b39960087b..fa817befc22d4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestWindowOperator.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator; import com.facebook.presto.ExceededMemoryLimitException; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.WindowOperator.WindowOperatorFactory; @@ -25,7 +26,6 @@ import com.facebook.presto.operator.window.NthValueFunction; import com.facebook.presto.operator.window.ReflectionWindowFunctionSupplier; import com.facebook.presto.operator.window.RowNumberFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestingExchangeHttpClientHandler.java b/presto-main/src/test/java/com/facebook/presto/operator/TestingExchangeHttpClientHandler.java index 84aea563de221..3636a68f77b26 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestingExchangeHttpClientHandler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestingExchangeHttpClientHandler.java @@ -18,7 +18,7 @@ import com.facebook.airlift.http.client.Response; import com.facebook.airlift.http.client.testing.TestingHttpClient; import com.facebook.airlift.http.client.testing.TestingResponse; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.PagesSerdeUtil; import com.google.common.base.Splitter; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java b/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java index 6aa0d4a4cabe8..23516e808bb1d 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/TestingTaskBuffer.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java index 816a72ef2ce5d..7645e6a5c38c2 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AbstractTestApproximateCountDistinct.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java index 71f49ac5e7cb1..a22165c06c81b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/AggregationTestUtils.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.operator.GroupByIdBlock; -import com.facebook.presto.spi.Page; import com.google.common.primitives.Ints; import org.apache.commons.math3.util.Precision; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java index b89937837c922..77c756f408e1a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkArrayAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; import org.openjdk.jmh.annotations.Benchmark; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java index e9d57b435495e..b9110bc834246 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/BenchmarkGroupedTypedHistogram.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; import com.facebook.presto.operator.aggregation.histogram.HistogramGroupImplementation; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.Fork; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java index 73843b7878c50..f3cc2284f5b86 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestDoubleHistogramAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeStatisticalDigestFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeStatisticalDigestFunction.java index 8410fcdad96dd..095e1aaf9ca26 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeStatisticalDigestFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMergeStatisticalDigestFunction.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.operator.aggregation; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import org.testng.annotations.Test; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java index 709f880099ebc..abcd060d49bdb 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestMultimapAggAggregation.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.RowPageBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestInputBuilder; import com.facebook.presto.operator.aggregation.groupByAggregations.AggregationTestOutput; import com.facebook.presto.operator.aggregation.groupByAggregations.GroupByAggregationTestUtils; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMultimap; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java index 25b4fa6883e5f..fd4363e647289 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestQuantileDigestAggregationFunction.java @@ -14,12 +14,12 @@ package com.facebook.presto.operator.aggregation; import com.facebook.airlift.stats.QuantileDigest; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.Page; import com.google.common.primitives.Doubles; import com.google.common.primitives.Floats; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java index 8cc1e35018aaf..952976183f21e 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestRealHistogramAggregation.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.aggregation; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java index d7188469c452d..f0ef62a3017b8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestStatisticalDigestAggregationFunction.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.Page; import com.google.common.base.Joiner; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java index 592a76df89a17..2883c426593a2 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTDigestAggregationFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.tdigest.TDigest; import java.util.ArrayList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java index 1e5254d2a4f1e..79bfe46e7a85a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/TestTypedSet.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.operator.aggregation; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInput.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInput.java index ccb3f1cd5b2e3..2b49387a86f46 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInput.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInput.java @@ -14,11 +14,11 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; +import com.facebook.presto.common.Page; import com.facebook.presto.operator.GroupByIdBlock; import com.facebook.presto.operator.aggregation.AggregationTestUtils; import com.facebook.presto.operator.aggregation.GroupedAccumulator; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.google.common.base.Suppliers; import org.testng.internal.collections.Ints; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java index 6766bb63e8d63..0a71ff2b57db3 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/AggregationTestInputBuilder.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; public class AggregationTestInputBuilder { diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java index 5977278336b49..577fb08af2c61 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/groupByAggregations/GroupByAggregationTestUtils.java @@ -14,9 +14,9 @@ package com.facebook.presto.operator.aggregation.groupByAggregations; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import static org.testng.Assert.assertEquals; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java index 9b18a83fcb55d..e02adbc90c0e2 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/aggregation/minmaxby/TestMinMaxByNAggregation.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.operator.aggregation.minmaxby; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java b/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java index 9e26dac0849ec..64287a15ed87b 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/exchange/TestLocalExchange.java @@ -15,6 +15,7 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; import com.facebook.presto.operator.InterpretedHashGenerator; @@ -23,7 +24,6 @@ import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactory; import com.facebook.presto.operator.exchange.LocalExchange.LocalExchangeSinkFactoryId; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.planner.PartitioningProviderManager; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java index 8c87463d325f1..adcee84ccbcb4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/index/TestTupleFilterProcessor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.gen.PageFunctionCompiler; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java index 4fb36c981e342..c7035b3054629 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageFilter.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.LongArrayBlock; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.function.SqlFunctionProperties; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntArraySet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java index 4dd38f2c6f3b7..262db009efaa8 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestDictionaryAwarePageProjection.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; @@ -22,7 +23,6 @@ import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java index aa6fa32fe6a8a..2f5d25fa868fc 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestMergingPageOutput.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.operator.project; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java index 6f15a3a629440..2231ca973242a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/project/TestPageProcessor.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.project; import com.facebook.airlift.testing.TestingTicker; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.LazyBlock; import com.facebook.presto.common.block.VariableWidthBlock; @@ -25,7 +26,6 @@ import com.facebook.presto.operator.CompletedWork; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.Work; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.sql.gen.ExpressionProfiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java index 85477d7323714..c442fc479b125 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/BenchmarkPartitionedOutputOperator.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.Lifespan; @@ -33,7 +34,6 @@ import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.OptimizedPartitionedOutputFactory; import com.facebook.presto.operator.repartition.PartitionedOutputOperator.PartitionedOutputFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.sql.planner.OutputPartitioning; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java index 8572a8e739010..c456f09569fa1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/repartition/TestOptimizedPartitionedOutputOperator.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.VariableWidthBlock; import com.facebook.presto.common.type.ArrayType; @@ -35,7 +36,6 @@ import com.facebook.presto.operator.PrecomputedHashGenerator; import com.facebook.presto.operator.exchange.LocalPartitionGenerator; import com.facebook.presto.operator.repartition.OptimizedPartitionedOutputOperator.OptimizedPartitionedOutputFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; import com.facebook.presto.spi.plan.PlanNodeId; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java index 072828fbf501d..74a41d5756a8a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayDistinct.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.aggregation.TypedSet; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java index 6c35be92ad803..35c6e8fb8dab0 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayFilter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.function.QualifiedFunctionName; @@ -26,7 +27,6 @@ import com.facebook.presto.metadata.SqlScalarFunction; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java index 069d9ea4eefe9..3b551d714a9f5 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayHashCodeOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -23,7 +24,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.OperatorDependency; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java index 29c258378f803..7744e1fe33f33 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayIntersect.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -21,7 +22,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java index 19b9f838c67a8..aac8650a7d8fa 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayJoin.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java index d88f128b3b587..fc746549b9b4a 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySort.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java index 8bdcdfc6d99c5..92e212f4babe1 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArraySubscript.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.ArrayBlock; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java index f6e0e3d008260..508e5629541be 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkArrayTransform.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -21,8 +23,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.ConstantExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java index 1937ac7c0e58e..95d47b233b8db 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkEqualsOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; @@ -20,8 +22,6 @@ import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.gen.ExpressionCompiler; import com.facebook.presto.sql.gen.PageFunctionCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java index a89211f8d4cbd..83bcfd3313f52 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToArrayCast.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -21,7 +22,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java index 626f561b91f49..392f1f82e4287 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkJsonToMapCast.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java index b226c9831c0fe..e72dddbef6498 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapConcat.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java index 58eac170c886d..ff3ab2d18aa90 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapSubscript.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; @@ -21,7 +22,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java index 3be1e56f2f971..9170b20f68663 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkMapToMapCast.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.MapType; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java index c1e88f2d87867..e944377b22395 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkRowToRowCast.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.RowType; @@ -21,7 +22,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java index cdfc73f96ceaf..a69dbce53a9da 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformKey.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.MapType; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java index 99f46a070b84a..ef788bb029507 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/BenchmarkTransformValue.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.MapType; @@ -22,7 +23,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.LambdaDefinitionExpression; import com.facebook.presto.spi.relation.RowExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java index 90ffbb726f847..2b9e1771b1ad7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java @@ -15,6 +15,8 @@ import com.facebook.presto.Session; import com.facebook.presto.common.InvalidFunctionArgumentException; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.common.predicate.Utils; @@ -46,8 +48,6 @@ import com.facebook.presto.spi.FixedPageSource; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.InMemoryRecordSet; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.RecordSet; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java index 5dab04eeeaa1c..eb99c97c858ab 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/TestPageProcessorCompiler.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.ArrayType; @@ -20,7 +21,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.function.FunctionHandle; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.InputReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java b/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java index c90e00f683210..5d0a6c32573ec 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/spiller/BenchmarkBinaryFileSpiller.java @@ -14,10 +14,10 @@ package com.facebook.presto.operator.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spiller.FileSingleStreamSpillerFactory; import com.facebook.presto.spiller.GenericSpillerFactory; import com.facebook.presto.spiller.Spiller; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java index a2bfa511c7533..d0a24c28297cf 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnestOperator.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockAssertions.Encoding; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; @@ -23,7 +24,6 @@ import com.facebook.presto.operator.Operator; import com.facebook.presto.operator.OperatorFactory; import com.facebook.presto.operator.PageAssertions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; diff --git a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java index dc94b85c7047c..3021509f580a6 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/unnest/TestUnnesterUtil.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.operator.unnest; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.ColumnarArray; @@ -22,8 +24,6 @@ import com.facebook.presto.common.type.MapType; import com.facebook.presto.common.type.RowType; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import java.util.ArrayList; import java.util.List; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java index d63013f17e905..03ee1f686e4cd 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestBinaryFileSpiller.java @@ -15,12 +15,12 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.PagesSerdeFactory; import com.facebook.presto.memory.context.AggregatedMemoryContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java index 4d1d4934ac066..21e867a314ef9 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpiller.java @@ -14,11 +14,11 @@ package com.facebook.presto.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.LocalMemoryContext; import com.facebook.presto.operator.PageAssertions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.page.PageCodecMarker; import com.facebook.presto.spi.page.PagesSerdeUtil; import com.facebook.presto.spi.page.SerializedPage; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java index 9059e3694b392..636c9d8e31a86 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestFileSingleStreamSpillerFactory.java @@ -14,10 +14,10 @@ package com.facebook.presto.spiller; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; import com.google.common.io.Closer; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java index 137a537e28cf1..fd993ffd86cb3 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestGenericPartitioningSpiller.java @@ -16,13 +16,13 @@ import com.facebook.presto.RowPagesBuilder; import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.operator.SpillContext; import com.facebook.presto.operator.TestingOperatorContext; -import com.facebook.presto.spi.Page; import com.facebook.presto.spiller.PartitioningSpiller.PartitioningSpillResult; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; diff --git a/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java b/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java index 716e094ef1868..baa38dec89ceb 100644 --- a/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java +++ b/presto-main/src/test/java/com/facebook/presto/spiller/TestSpillCipherPagesSerde.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.spiller; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.buffer.TestingPagesSerdeFactory; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.page.PagesSerde; import com.facebook.presto.spi.page.SerializedPage; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java index 3789150d675df..3dcb124db35ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/BenchmarkPageProcessor.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java index 39eadb88b8f75..e3b9c961c0726 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/CommonSubExpressionBenchmark.java @@ -15,6 +15,7 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.type.Type; @@ -23,7 +24,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java index 34d95e5b5b03f..bdce6146ad348 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/InCodeGeneratorBenchmark.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.relation.RowExpression; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slices; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java index ecb85a75f374d..17f6aaa34fbbf 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/PageProcessorBenchmark.java @@ -15,6 +15,8 @@ import com.facebook.presto.SequencePageBuilder; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; @@ -23,8 +25,6 @@ import com.facebook.presto.operator.index.PageRecordSet; import com.facebook.presto.operator.project.CursorProcessor; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java index 8398d190dbc08..6abc856a8b568 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestJoinCompiler.java @@ -14,14 +14,14 @@ package com.facebook.presto.sql.gen; import com.facebook.presto.block.BlockAssertions; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.PagesHashStrategy; import com.facebook.presto.operator.SimplePagesHashStrategy; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.gen.JoinCompiler.PagesHashStrategyFactory; import com.facebook.presto.type.TypeUtils; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java index 7b96b0a5036e8..c9b14e6f94994 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestPageFunctionCompiler.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; @@ -22,7 +23,6 @@ import com.facebook.presto.operator.project.PageProjection; import com.facebook.presto.operator.project.PageProjectionWithOutputs; import com.facebook.presto.operator.project.SelectedPositions; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java index 892c39f41c792..5d279f04cc242 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestRowExpressionPredicateCompiler.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.InputReferenceExpression; -import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.spi.relation.PredicateCompiler; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.sql.relational.FunctionResolution; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java index 4ed66c2c80b6b..31bbace6d55f6 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestEffectivePredicateExtractor.java @@ -14,6 +14,8 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.spi.ColumnHandle; @@ -30,8 +32,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.UnionNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.plan.JoinNode; import com.facebook.presto.sql.planner.plan.SemiJoinNode; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java index eb6cab9eae902..6c379c185584f 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestExpressionDomainTranslator.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Metadata; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.ExpressionDomainTranslator.ExtractionResult; import com.facebook.presto.sql.tree.BetweenPredicate; @@ -56,6 +56,7 @@ import java.util.concurrent.TimeUnit; import static com.facebook.presto.SessionTestUtils.TEST_SESSION; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.CharType.createCharType; @@ -72,7 +73,6 @@ import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.sql.ExpressionUtils.and; import static com.facebook.presto.sql.ExpressionUtils.or; import static com.facebook.presto.sql.planner.LiteralEncoder.getMagicLiteralFunctionSignature; @@ -1482,7 +1482,7 @@ private void testSimpleComparison(Expression expression, String symbol, Domain d TupleDomain actual = result.getTupleDomain(); TupleDomain expected = withColumnDomains(ImmutableMap.of(symbol, domain)); if (!actual.equals(expected)) { - fail(format("for comparison [%s] expected %s but found %s", expression.toString(), expected.toString(SESSION), actual.toString(SESSION))); + fail(format("for comparison [%s] expected %s but found %s", expression.toString(), expected.toString(SESSION.getSqlFunctionProperties()), actual.toString(SESSION.getSqlFunctionProperties()))); } } diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java index ddd274d9c9300..493a1a9da7041 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestLogicalPlanner.java @@ -51,13 +51,13 @@ import static com.facebook.presto.SystemSessionProperties.JOIN_DISTRIBUTION_TYPE; import static com.facebook.presto.SystemSessionProperties.OPTIMIZE_HASH_GENERATION; import static com.facebook.presto.common.block.SortOrder.ASC_NULLS_LAST; +import static com.facebook.presto.common.predicate.Domain.singleValue; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.spi.StandardErrorCode.SUBQUERY_MULTIPLE_ROWS; import static com.facebook.presto.spi.plan.AggregationNode.Step.FINAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.PARTIAL; import static com.facebook.presto.spi.plan.AggregationNode.Step.SINGLE; -import static com.facebook.presto.spi.predicate.Domain.singleValue; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.aggregation; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.any; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.anyNot; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java index 20b32e031c459..111e7d12fe063 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionDomainTranslator.java @@ -14,15 +14,15 @@ package com.facebook.presto.sql.planner; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.CastType; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.function.FunctionHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.spi.relation.DomainTranslator.ExtractionResult; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.SpecialFormExpression; @@ -49,6 +49,7 @@ import static com.facebook.presto.common.function.OperatorType.GREATER_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.LESS_THAN_OR_EQUAL; import static com.facebook.presto.common.function.OperatorType.NOT_EQUAL; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.CharType.createCharType; @@ -69,7 +70,6 @@ import static com.facebook.presto.expressions.LogicalRowExpressions.and; import static com.facebook.presto.expressions.LogicalRowExpressions.or; import static com.facebook.presto.metadata.MetadataManager.createTestMetadataManager; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.spi.relation.DomainTranslator.BASIC_COLUMN_EXTRACTOR; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IN; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.IS_NULL; @@ -1343,7 +1343,7 @@ private void testSimpleComparison(RowExpression expression, VariableReferenceExp TupleDomain actual = result.getTupleDomain(); TupleDomain expected = withColumnDomains(ImmutableMap.of(input, domain)); if (!actual.equals(expected)) { - fail(format("for comparison [%s] expected %s but found %s", expression.toString(), expected.toString(SESSION), actual.toString(SESSION))); + fail(format("for comparison [%s] expected %s but found %s", expression.toString(), expected.toString(SESSION.getSqlFunctionProperties()), actual.toString(SESSION.getSqlFunctionProperties()))); } } diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java index 102a33b0bde5b..f1d89954440fc 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestRowExpressionPredicateExtractor.java @@ -15,6 +15,8 @@ import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.expressions.LogicalRowExpressions; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.MetadataManager; @@ -32,8 +34,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.UnionNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.plan.JoinNode; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java index 1f12f06b04060..5a631a79d6cb5 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/TestTypeValidator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.execution.warnings.WarningCollector; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.plan.ProjectNode; import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.parser.SqlParser; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/IndexSourceMatcher.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/IndexSourceMatcher.java index e840235d5b815..745e8dddf8005 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/IndexSourceMatcher.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/IndexSourceMatcher.java @@ -14,11 +14,11 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableMetadata; import com.facebook.presto.spi.plan.PlanNode; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.sql.planner.plan.IndexSourceNode; import com.google.common.collect.ImmutableMap; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java index b52ccf59d5841..c6a375843d5c9 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/PlanMatchPattern.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.plan.AggregationNode; @@ -29,7 +30,6 @@ import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.sql.parser.ParsingOptions; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.Symbol; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TableScanMatcher.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TableScanMatcher.java index af32518f7be87..b4d3fbb14a268 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TableScanMatcher.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/TableScanMatcher.java @@ -14,12 +14,12 @@ package com.facebook.presto.sql.planner.assertions; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.cost.StatsProvider; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.metadata.TableMetadata; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.Domain; import java.util.Map; import java.util.Optional; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java index ae33c240782bc..4d43af2c0b5f8 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/assertions/Util.java @@ -15,12 +15,12 @@ import com.facebook.presto.Session; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.OrderingScheme; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.planner.Symbol; import com.facebook.presto.sql.planner.assertions.PlanMatchPattern.Ordering; import com.google.common.collect.Maps; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java index b5cf68d720b66..b46d8ae2342ee 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPickTableLayout.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.iterative.Rule; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; @@ -34,9 +34,9 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.predicate.Domain.singleValue; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.predicate.Domain.singleValue; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.constrainedTableScanWithTableLayout; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.filter; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.values; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java index d6e8986a9131c..cbf450f2e65b9 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/TestPruneIndexSourceColumns.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.sql.planner.iterative.rule; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.PlanNode; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.iterative.rule.test.BaseRuleTest; import com.facebook.presto.sql.planner.iterative.rule.test.PlanBuilder; @@ -34,9 +34,9 @@ import java.util.Optional; import java.util.function.Predicate; +import static com.facebook.presto.common.predicate.NullableValue.asNull; import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.common.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.predicate.NullableValue.asNull; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.constrainedIndexSource; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.expression; import static com.facebook.presto.sql.planner.assertions.PlanMatchPattern.strictProject; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java index 38b79cffd167e..9a9a100c5bd2d 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/iterative/rule/test/PlanBuilder.java @@ -16,6 +16,7 @@ import com.facebook.presto.Session; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.function.OperatorType; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.IndexHandle; @@ -43,7 +44,6 @@ import com.facebook.presto.spi.plan.TopNNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.CallExpression; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java index 6837d33156d06..97d740280a8ef 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/optimizations/TestConnectorOptimization.java @@ -14,6 +14,7 @@ package com.facebook.presto.sql.planner.optimizations; import com.facebook.presto.Session; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.cost.PlanNodeStatsEstimate; import com.facebook.presto.cost.StatsAndCosts; import com.facebook.presto.cost.StatsProvider; @@ -32,7 +33,6 @@ import com.facebook.presto.spi.plan.TableScanNode; import com.facebook.presto.spi.plan.UnionNode; import com.facebook.presto.spi.plan.ValuesNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.planner.Plan; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java index 618045abd7e10..74cc5e7da05d5 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateAggregationsWithDefaultValues.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.planner.sanity; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorId; @@ -20,7 +21,6 @@ import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; import com.facebook.presto.spi.plan.TableScanNode; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.assertions.BasePlanTest; diff --git a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java index 327bb2969d60e..33780b85686eb 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/planner/sanity/TestValidateStreamingAggregations.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.sql.planner.sanity; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.execution.warnings.WarningCollector; import com.facebook.presto.metadata.Metadata; import com.facebook.presto.spi.ConnectorId; import com.facebook.presto.spi.TableHandle; import com.facebook.presto.spi.plan.PlanNode; import com.facebook.presto.spi.plan.PlanNodeIdAllocator; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.parser.SqlParser; import com.facebook.presto.sql.planner.TypeProvider; import com.facebook.presto.sql.planner.assertions.BasePlanTest; diff --git a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java index 925d04b4992e5..7ff54320709c6 100644 --- a/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java +++ b/presto-main/src/test/java/com/facebook/presto/type/BenchmarkDecimalOperators.java @@ -14,6 +14,7 @@ package com.facebook.presto.type; import com.facebook.presto.RowPagesBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.DoubleType; @@ -23,7 +24,6 @@ import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.project.PageProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.relation.RowExpression; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.facebook.presto.sql.gen.ExpressionCompiler; diff --git a/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java b/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java index a4b072543c860..826b43ee6fc0c 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java +++ b/presto-main/src/test/java/com/facebook/presto/util/PagesSortBenchmark.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.PageBuilderStatus; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.DriverYieldSignal; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.operator.WorkProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.gen.OrderingCompiler; import com.google.common.collect.ImmutableList; import com.google.common.collect.Streams; diff --git a/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java b/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java index 0c9a1aef91a4a..ff87382200d02 100644 --- a/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java +++ b/presto-main/src/test/java/com/facebook/presto/util/TestMergeSortedPages.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.util; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.memory.context.AggregatedMemoryContext; @@ -20,7 +21,6 @@ import com.facebook.presto.operator.PageWithPositionComparator; import com.facebook.presto.operator.SimplePageWithPositionComparator; import com.facebook.presto.operator.WorkProcessor; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.MaterializedResult; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryMetadata.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryMetadata.java index 7f97b77a0befc..0c8c9e8b62f99 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryMetadata.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorInsertTableHandle; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.ViewNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java index c6a793fff1f98..1c74a8127242a 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSinkProvider.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.connector.ConnectorPageSinkProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSourceProvider.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSourceProvider.java index 458a1bf3b5503..ef69bad294cb8 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSourceProvider.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPageSourceProvider.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java index fd361eed46a3c..7876b66547e8d 100644 --- a/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java +++ b/presto-memory/src/main/java/com/facebook/presto/plugin/memory/MemoryPagesStore.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; diff --git a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java index cb809d57b5ded..5195551e170cc 100644 --- a/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java +++ b/presto-memory/src/test/java/com/facebook/presto/plugin/memory/TestMemoryPagesStore.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.plugin.memory; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.spi.ConnectorInsertTableHandle; import com.facebook.presto.spi.ConnectorOutputTableHandle; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.testing.TestingConnectorSession; diff --git a/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java b/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java index f89c05ec6f93a..263c3340483f0 100644 --- a/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java +++ b/presto-ml/src/main/java/com/facebook/presto/ml/MLFeaturesFunctions.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.ml; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; diff --git a/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java b/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java index ddcf1b4f10d62..09a4f06727852 100644 --- a/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java +++ b/presto-ml/src/test/java/com/facebook/presto/ml/TestEvaluateClassifierPredictions.java @@ -14,13 +14,13 @@ package com.facebook.presto.ml; import com.facebook.presto.RowPageBuilder; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.MetadataManager; import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java b/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java index e69f0aab17c9c..86d103ea694e5 100644 --- a/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java +++ b/presto-ml/src/test/java/com/facebook/presto/ml/TestLearnAggregations.java @@ -15,6 +15,7 @@ import com.facebook.presto.RowPageBuilder; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.StandardTypes; @@ -31,7 +32,6 @@ import com.facebook.presto.operator.aggregation.Accumulator; import com.facebook.presto.operator.aggregation.AggregationFromAnnotationsParser; import com.facebook.presto.operator.aggregation.InternalAggregationFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoMetadata.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoMetadata.java index fcf4a7ae4f8ea..23ffd3004988d 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoMetadata.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoMetadata.java @@ -14,6 +14,7 @@ package com.facebook.presto.mongodb; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.mongodb.MongoIndex.MongodbIndexKey; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -35,7 +36,6 @@ import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java index be183e40bdf31..c5390110d3b85 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSink.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; @@ -32,7 +33,6 @@ import com.facebook.presto.common.type.VarbinaryType; import com.facebook.presto.spi.ConnectorPageSink; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.StandardErrorCode; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java index a610206fac176..660336423f020 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoPageSource.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.mongodb.client.MongoCursor; import io.airlift.slice.Slice; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java index 7aaed2b32020c..d7f53c1262c61 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSession.java @@ -14,6 +14,9 @@ package com.facebook.presto.mongodb; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.NamedTypeSignature; import com.facebook.presto.common.type.RowFieldName; import com.facebook.presto.common.type.StandardTypes; @@ -26,9 +29,6 @@ import com.facebook.presto.spi.SchemaNotFoundException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.TableNotFoundException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.annotations.VisibleForTesting; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSplit.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSplit.java index d1de5cc4c79ad..3fade2a8a5ed2 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSplit.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoSplit.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoTableLayoutHandle.java b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoTableLayoutHandle.java index 1130c835e8609..af0bcb5e648a2 100644 --- a/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoTableLayoutHandle.java +++ b/presto-mongodb/src/main/java/com/facebook/presto/mongodb/MongoTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java index 59d139364adfd..5cd4595e1e4d2 100644 --- a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java +++ b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSession.java @@ -13,22 +13,22 @@ */ package com.facebook.presto.mongodb; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.bson.Document; import org.testng.annotations.Test; +import static com.facebook.presto.common.predicate.Range.equal; +import static com.facebook.presto.common.predicate.Range.greaterThan; +import static com.facebook.presto.common.predicate.Range.greaterThanOrEqual; +import static com.facebook.presto.common.predicate.Range.lessThan; +import static com.facebook.presto.common.predicate.Range.range; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.VarcharType.createUnboundedVarcharType; -import static com.facebook.presto.spi.predicate.Range.equal; -import static com.facebook.presto.spi.predicate.Range.greaterThan; -import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; -import static com.facebook.presto.spi.predicate.Range.lessThan; -import static com.facebook.presto.spi.predicate.Range.range; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Arrays.asList; import static org.testng.Assert.assertEquals; diff --git a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSplit.java b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSplit.java index 828c73cf326c5..6232a8c55afe1 100644 --- a/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSplit.java +++ b/presto-mongodb/src/test/java/com/facebook/presto/mongodb/TestMongoSplit.java @@ -14,9 +14,9 @@ package com.facebook.presto.mongodb; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java index c49bf2946b490..0bb69e2f92067 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/AbstractOrcRecordReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.FixedWidthType; @@ -26,7 +27,6 @@ import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.orc.reader.StreamReader; import com.facebook.presto.orc.stream.InputStreamSources; -import com.facebook.presto.spi.Page; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java b/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java index dfdd3c2591deb..414bb5a22e9e8 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/FilterFunction.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.function.SqlFunctionProperties; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.relation.Predicate; +import com.facebook.presto.common.relation.Predicate; import static com.facebook.presto.orc.array.Arrays.ensureCapacity; import static com.google.common.base.Preconditions.checkArgument; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java index 59c75fe5e7bc7..fc1f20ea12066 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcBatchRecordReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.metadata.MetadataReader; @@ -23,7 +24,6 @@ import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.orc.reader.BatchStreamReader; import com.facebook.presto.orc.reader.BatchStreamReaders; -import com.facebook.presto.spi.Page; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java index 3e343c0f8a0f4..540414bd4dc96 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcSelectiveRecordReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockLease; @@ -33,7 +34,6 @@ import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.metadata.statistics.StripeStatistics; import com.facebook.presto.orc.reader.SelectiveStreamReader; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java index e82fc71d72169..d81f238d785c6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.ColumnarMap; import com.facebook.presto.common.block.ColumnarRow; @@ -40,7 +41,6 @@ import com.facebook.presto.orc.metadata.statistics.StringStatistics; import com.facebook.presto.orc.metadata.statistics.StringStatisticsBuilder; import com.facebook.presto.orc.metadata.statistics.StripeStatistics; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSortedMap; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java index cbe38ec48651f..da518ab7511c5 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriter.java @@ -14,6 +14,7 @@ package com.facebook.presto.orc; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationBuilder; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; @@ -33,7 +34,6 @@ import com.facebook.presto.orc.stream.StreamDataOutput; import com.facebook.presto.orc.writer.ColumnWriter; import com.facebook.presto.orc.writer.SliceDictionaryColumnWriter; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java index b0a30c6ddba5e..32baad40740a6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainFilterUtils.java @@ -13,6 +13,11 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; @@ -28,11 +33,6 @@ import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.orc.TupleDomainFilter.LongDecimalRange; import com.facebook.presto.orc.TupleDomainFilter.MultiRange; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.ValueSet; import io.airlift.slice.Slice; import java.math.BigInteger; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java index 707d3424bfa5b..1fb00d3aa93c6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/TupleDomainOrcPredicate.java @@ -13,6 +13,10 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; @@ -22,10 +26,6 @@ import com.facebook.presto.orc.metadata.statistics.ColumnStatistics; import com.facebook.presto.orc.metadata.statistics.HiveBloomFilter; import com.facebook.presto.orc.metadata.statistics.RangeStatistics; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java index 458a4c5eca4f1..3a9c3ea203140 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/BenchmarkSelectiveStreamReaders.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; @@ -30,7 +31,6 @@ import com.facebook.presto.orc.TupleDomainFilter.DoubleRange; import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java index 39315edd272c5..ea58d2822bc13 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/OrcTester.java @@ -16,6 +16,7 @@ import com.facebook.hive.orc.OrcConf; import com.facebook.hive.orc.lazy.OrcLazyObject; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -45,7 +46,6 @@ import com.facebook.presto.orc.cache.OrcFileTailSource; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.orc.metadata.CompressionKind; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.base.Functions; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java index 3354e65dae718..bd77c167ef3c5 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestFilterFunction.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.DictionaryBlock; import com.facebook.presto.common.block.LongArrayBlock; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.relation.Predicate; import com.facebook.presto.testing.TestingConnectorSession; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java index 112a051e4f634..69db71d8f3809 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestMapFlatSelectiveStreamReader.java @@ -14,9 +14,11 @@ package com.facebook.presto.orc; import com.facebook.presto.Session; +import com.facebook.presto.common.Page; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.common.type.BooleanType; import com.facebook.presto.common.type.DoubleType; import com.facebook.presto.common.type.IntegerType; @@ -28,8 +30,6 @@ import com.facebook.presto.common.type.TimeZoneKey; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeSignatureParameter; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.relation.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java index e739bf42b255c..65b4f8d48f8a8 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcBloomFilters.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.TupleDomainOrcPredicate.ColumnReference; import com.facebook.presto.orc.metadata.OrcMetadataReader; @@ -21,8 +23,6 @@ import com.facebook.presto.orc.metadata.statistics.IntegerStatistics; import com.facebook.presto.orc.proto.OrcProto; import com.facebook.presto.orc.protobuf.CodedInputStream; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.primitives.Longs; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java index 11b1a3c6e09f5..61bc0d8df8856 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestOrcWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode; @@ -23,7 +24,6 @@ import com.facebook.presto.orc.metadata.StripeInformation; import com.facebook.presto.orc.stream.DataOutput; import com.facebook.presto.orc.stream.OrcInputStream; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slices; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java index e17b47fcfcae4..dd09691e8978f 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestReadBloomFilter.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.predicate.NullableValue; import com.facebook.presto.common.type.SqlVarbinary; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; -import com.facebook.presto.spi.predicate.NullableValue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; @@ -26,6 +26,7 @@ import java.util.List; import java.util.Optional; +import static com.facebook.presto.common.predicate.TupleDomain.fromFixedValues; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.common.type.IntegerType.INTEGER; @@ -41,7 +42,6 @@ import static com.facebook.presto.orc.OrcTester.writeOrcColumnHive; import static com.facebook.presto.orc.TupleDomainOrcPredicate.ColumnReference; import static com.facebook.presto.orc.metadata.CompressionKind.SNAPPY; -import static com.facebook.presto.spi.predicate.TupleDomain.fromFixedValues; import static com.google.common.collect.Iterables.cycle; import static com.google.common.collect.Iterables.limit; import static com.google.common.collect.Lists.newArrayList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java index 2697b37dfd608..e18881c90485d 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestStructBatchStreamReader.java @@ -14,6 +14,7 @@ package com.facebook.presto.orc; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.RowBlock; @@ -25,7 +26,6 @@ import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.orc.cache.StorageOrcFileTailSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java index 9e2c4a78e94b1..5f4b0d79e5465 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainFilterUtils.java @@ -15,6 +15,7 @@ import com.facebook.presto.Session; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.common.type.NamedTypeSignature; import com.facebook.presto.common.type.RowFieldName; import com.facebook.presto.common.type.Type; @@ -34,7 +35,6 @@ import com.facebook.presto.orc.TupleDomainFilter.FloatRange; import com.facebook.presto.orc.TupleDomainFilter.LongDecimalRange; import com.facebook.presto.orc.TupleDomainFilter.MultiRange; -import com.facebook.presto.spi.predicate.Domain; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.sql.planner.ExpressionDomainTranslator; import com.facebook.presto.sql.planner.LiteralEncoder; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java index 5963b393876f3..6b26f35cd3748 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestTupleDomainOrcPredicate.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.metadata.statistics.BinaryStatistics; import com.facebook.presto.orc.metadata.statistics.BooleanStatistics; @@ -22,14 +25,18 @@ import com.facebook.presto.orc.metadata.statistics.DoubleStatistics; import com.facebook.presto.orc.metadata.statistics.IntegerStatistics; import com.facebook.presto.orc.metadata.statistics.StringStatistics; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.ValueSet; import io.airlift.slice.Slice; import org.testng.annotations.Test; import java.math.BigDecimal; +import static com.facebook.presto.common.predicate.Domain.create; +import static com.facebook.presto.common.predicate.Domain.notNull; +import static com.facebook.presto.common.predicate.Domain.onlyNull; +import static com.facebook.presto.common.predicate.Domain.singleValue; +import static com.facebook.presto.common.predicate.Range.greaterThanOrEqual; +import static com.facebook.presto.common.predicate.Range.lessThanOrEqual; +import static com.facebook.presto.common.predicate.Range.range; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.CharType.createCharType; @@ -42,13 +49,6 @@ import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.orc.TupleDomainOrcPredicate.getDomain; import static com.facebook.presto.orc.metadata.statistics.ShortDecimalStatisticsBuilder.SHORT_DECIMAL_VALUE_BYTES; -import static com.facebook.presto.spi.predicate.Domain.create; -import static com.facebook.presto.spi.predicate.Domain.notNull; -import static com.facebook.presto.spi.predicate.Domain.onlyNull; -import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; -import static com.facebook.presto.spi.predicate.Range.lessThanOrEqual; -import static com.facebook.presto.spi.predicate.Range.range; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; import static org.testng.Assert.assertEquals; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java index 5a728caf1c158..6ef5205e6d429 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/PredicateUtils.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.parquet.predicate; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.DictionaryPage; import com.facebook.presto.parquet.ParquetCorruptionException; import com.facebook.presto.parquet.ParquetDataSource; import com.facebook.presto.parquet.ParquetEncoding; import com.facebook.presto.parquet.RichColumnDescriptor; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java index fca232d2e4910..d2b699c182ee8 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/predicate/TupleDomainParquetPredicate.java @@ -13,16 +13,16 @@ */ package com.facebook.presto.parquet.predicate; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.DictionaryPage; import com.facebook.presto.parquet.ParquetCorruptionException; import com.facebook.presto.parquet.ParquetDataSourceId; import com.facebook.presto.parquet.RichColumnDescriptor; import com.facebook.presto.parquet.dictionary.Dictionary; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java index 659595c384ef2..b949822a44e09 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/writer/ParquetWriter.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.parquet.writer; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.parquet.writer.ColumnWriter.BufferData; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.OutputStreamSliceOutput; diff --git a/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java b/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java index 661f89f916787..482355c74b4ed 100644 --- a/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java +++ b/presto-parquet/src/test/java/com/facebook/presto/parquet/TestTupleDomainParquetPredicate.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.parquet; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.parquet.predicate.DictionaryDescriptor; import com.facebook.presto.parquet.predicate.TupleDomainParquetPredicate; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; import io.airlift.slice.Slices; @@ -37,6 +37,11 @@ import java.util.Map; import java.util.Optional; +import static com.facebook.presto.common.predicate.Domain.create; +import static com.facebook.presto.common.predicate.Domain.notNull; +import static com.facebook.presto.common.predicate.Domain.singleValue; +import static com.facebook.presto.common.predicate.Range.range; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.DateType.DATE; @@ -49,11 +54,6 @@ import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.parquet.ParquetEncoding.PLAIN_DICTIONARY; import static com.facebook.presto.parquet.predicate.TupleDomainParquetPredicate.getDomain; -import static com.facebook.presto.spi.predicate.Domain.create; -import static com.facebook.presto.spi.predicate.Domain.notNull; -import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.predicate.Range.range; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static io.airlift.slice.Slices.EMPTY_SLICE; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java index e84082f7d9371..8e47fd3db0e80 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotBrokerPageSource.java @@ -14,6 +14,8 @@ package com.facebook.presto.pinot; import com.facebook.airlift.http.client.Request; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.BooleanType; @@ -30,8 +32,6 @@ import com.facebook.presto.pinot.query.PinotQueryGenerator.GeneratedPql; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.annotations.VisibleForTesting; diff --git a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java index 37011017abef3..5b94fe24f0402 100644 --- a/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/main/java/com/facebook/presto/pinot/PinotSegmentPageSource.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.pinot.PinotScatterGatherQueryClient.ErrorCode; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java index 9935a204cd0e9..78df5f3498284 100644 --- a/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java +++ b/presto-pinot-toolkit/src/test/java/com/facebook/presto/pinot/TestPinotSegmentPageSource.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.pinot; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.Page; import com.facebook.presto.testing.TestingConnectorSession; import com.facebook.presto.testing.assertions.Assert; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java index ba19b1f778aff..d1f7add0a6e1f 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorBucketFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import io.airlift.slice.XxHash64; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java index 9f7f643b5f755..0546958e9a27a 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorMetadata.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.ColumnInfo; @@ -53,7 +54,6 @@ import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableListMultimap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java index f6671f926f581..c5fa365efa5fa 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSink.java @@ -14,6 +14,8 @@ package com.facebook.presto.raptor; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.SortOrder; @@ -25,8 +27,6 @@ import com.facebook.presto.raptor.util.PageBuffer; import com.facebook.presto.spi.BucketFunction; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.PageSorter; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java index a08682e6928d8..29fb22dfe7770 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorPageSourceProvider.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveFileContext; import com.facebook.presto.raptor.filesystem.FileSystemContext; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.SplitContext; import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import javax.inject.Inject; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java index b973e1f195b73..1c3d27012e231 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplit.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java index 2f699eeecb674..409b986b69c1b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.backup.BackupService; import com.facebook.presto.raptor.metadata.BucketShards; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.connector.ConnectorPartitionHandle; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.skife.jdbi.v2.ResultIterator; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableLayoutHandle.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableLayoutHandle.java index 21a9f9e922cb0..90096b05c17d9 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableLayoutHandle.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/RaptorTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java index 1769b3d1ea011..f3411119863f4 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/DatabaseShardManager.java @@ -15,6 +15,7 @@ import com.facebook.airlift.log.Logger; import com.facebook.airlift.stats.CounterStat; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.NodeSupplier; import com.facebook.presto.raptor.RaptorColumnHandle; @@ -22,7 +23,6 @@ import com.facebook.presto.raptor.util.DaoSupplier; import com.facebook.presto.spi.Node; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.base.Ticker; import com.google.common.cache.CacheBuilder; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardIterator.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardIterator.java index 3cad6a96ed094..b8d7175de3abc 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardIterator.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardIterator.java @@ -14,9 +14,9 @@ package com.facebook.presto.raptor.metadata; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableSet; import org.skife.jdbi.v2.IDBI; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardManager.java index 9443aaefbac44..5021d27efae1e 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardManager.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.raptor.RaptorColumnHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import org.skife.jdbi.v2.ResultIterator; import java.util.Collection; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java index 50f8c7132367d..4a440b1876f23 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/metadata/ShardPredicate.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.Ranges; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.Ranges; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java index c42dd242dd252..7b1ab20e80a29 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/DeltaShardRewriter.java @@ -14,13 +14,13 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.LongArrayBlockBuilder; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.DeltaInfoPair; import com.facebook.presto.raptor.metadata.ShardDeleteDelta; import com.facebook.presto.raptor.metadata.ShardInfo; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/FileWriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/FileWriter.java index 0ac8b0d29c3bc..c0cb86a4d52ac 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/FileWriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/FileWriter.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.raptor.storage; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import java.io.Closeable; import java.util.List; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java index 64b08bd727ac4..c64bc86337727 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; @@ -30,7 +31,6 @@ import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.raptor.RaptorOrcAggregatedMemoryContext; import com.facebook.presto.raptor.util.Closer; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java index a1732f84fd2cb..6195f9dbac171 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeSignature; @@ -22,7 +23,6 @@ import com.facebook.presto.orc.OrcWriterOptions; import com.facebook.presto.orc.OrcWriterStats; import com.facebook.presto.orc.metadata.CompressionKind; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java index 695b7239ee974..20c5963293c87 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcPageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.block.LazyBlock; @@ -24,7 +25,6 @@ import com.facebook.presto.orc.OrcDataSource; import com.facebook.presto.raptor.storage.DeltaShardLoader.RowsToKeepResult; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java index 4533001248f3f..7b51f44f38c5b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcStorageManager.java @@ -14,7 +14,9 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.MapType; @@ -56,9 +58,7 @@ import com.facebook.presto.raptor.storage.StorageManagerConfig.OrcOptimizedWriterStage; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java index c5e0304a2add0..f3ab6cb9ef9e6 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcUpdatablePageSource.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.orc.OrcBatchRecordReader; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.UpdatablePageSource; import io.airlift.slice.Slice; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java index 6d15260c21abd..b1d86b5a0c67f 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/Row.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Decimals; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarcharType; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import io.airlift.slice.Slice; import org.apache.hadoop.hive.common.type.HiveDecimal; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java index 347f64ae8356b..1a2173ab815b7 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StorageManager.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.hive.HiveFileContext; import com.facebook.presto.raptor.RaptorColumnHandle; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.predicate.TupleDomain; import java.util.List; import java.util.Map; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StoragePageSink.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StoragePageSink.java index 4787e8ffced4d..9220919605206 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StoragePageSink.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/StoragePageSink.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.Page; import com.facebook.presto.raptor.metadata.ShardInfo; -import com.facebook.presto.spi.Page; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java index 308c268437857..7fea1985a099d 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java @@ -15,8 +15,10 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.airlift.stats.DistributionStat; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.filesystem.FileSystemContext; import com.facebook.presto.raptor.metadata.ColumnInfo; @@ -25,8 +27,6 @@ import com.facebook.presto.raptor.storage.StorageManager; import com.facebook.presto.raptor.storage.StoragePageSink; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import org.weakref.jmx.Managed; import org.weakref.jmx.Nested; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java index 2f7b376b53c1e..d2275efca9685 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ColumnRangesSystemTable.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.systemtables; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorTableHandle; import com.facebook.presto.raptor.metadata.MetadataDao; @@ -26,7 +27,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.VerifyException; import org.skife.jdbi.v2.IDBI; import org.skife.jdbi.v2.exceptions.DBIException; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java index f8c2b1b6761a9..02dab772f1263 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PageListBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java index 44484732a3a48..b336c4f8907f5 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/PreparedStatementBuilder.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.base.Joiner; import com.google.common.base.VerifyException; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java index d64a2c5d336c2..e4c8771bef066 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataRecordCursor.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.spi.ColumnMetadata; @@ -20,8 +22,6 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataSystemTable.java index f3122b6455a6d..ba1207fdc8b0e 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/ShardMetadataSystemTable.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import org.skife.jdbi.v2.IDBI; import javax.inject.Inject; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java index b52cefc8e4337..e7386be3754d2 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableMetadataSystemTable.java @@ -13,7 +13,10 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.raptor.metadata.ColumnMetadataRow; @@ -25,13 +28,10 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.PeekingIterator; @@ -49,6 +49,7 @@ import java.util.SortedMap; import java.util.TreeMap; +import static com.facebook.presto.common.predicate.TupleDomain.extractFixedValues; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.TypeSignature.parseTypeSignature; @@ -56,7 +57,6 @@ import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_CORRUPT_METADATA; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValues; import static com.google.common.collect.Iterators.peekingIterator; import static io.airlift.slice.Slices.utf8Slice; import static java.lang.String.format; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java index de2c1eedb66f9..1c9fd4043e410 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/systemtables/TableStatsSystemTable.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.raptor.metadata.ForMetadata; import com.facebook.presto.raptor.metadata.MetadataDao; import com.facebook.presto.raptor.metadata.TableStatsRow; @@ -21,12 +24,9 @@ import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.FixedPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.skife.jdbi.v2.IDBI; @@ -36,6 +36,7 @@ import java.util.List; import java.util.Map; +import static com.facebook.presto.common.predicate.TupleDomain.extractFixedValues; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.common.type.VarcharType.VARCHAR; @@ -44,7 +45,6 @@ import static com.facebook.presto.raptor.systemtables.TableMetadataSystemTable.getStringValue; import static com.facebook.presto.raptor.util.DatabaseUtil.onDemandDao; import static com.facebook.presto.spi.SystemTable.Distribution.SINGLE_COORDINATOR; -import static com.facebook.presto.spi.predicate.TupleDomain.extractFixedValues; import static io.airlift.slice.Slices.utf8Slice; import static java.util.stream.Collectors.toList; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/ConcatPageSource.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/ConcatPageSource.java index cfdea869fd966..a46401c65874d 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/ConcatPageSource.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/ConcatPageSource.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.raptor.util; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import java.io.IOException; import java.util.Iterator; diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java index 61dee45333016..8a26c43b99a7a 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/util/PageBuffer.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor.util; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.storage.StoragePageSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSorter; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java index 3554fbecc422a..ed10b0d1d25f5 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorBucketFunction.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.raptor; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java index e636be89809c3..613af3e03fe5d 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/TestRaptorConnector.java @@ -15,6 +15,7 @@ import com.facebook.airlift.bootstrap.LifeCycleManager; import com.facebook.presto.PagesIndexPageSorter; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.SqlDate; import com.facebook.presto.common.type.SqlTimestamp; import com.facebook.presto.common.type.Type; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PageSinkProperties; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorMetadata; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java index e4dd5393c5353..3e54276480e33 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestDatabaseShardManager.java @@ -15,6 +15,10 @@ import com.facebook.airlift.testing.TestingTicker; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.raptor.NodeSupplier; @@ -22,10 +26,6 @@ import com.facebook.presto.raptor.util.DaoSupplier; import com.facebook.presto.spi.Node; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.base.Ticker; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; @@ -65,6 +65,10 @@ import java.util.function.Function; import java.util.stream.Collectors; +import static com.facebook.presto.common.predicate.Range.greaterThan; +import static com.facebook.presto.common.predicate.Range.greaterThanOrEqual; +import static com.facebook.presto.common.predicate.Range.lessThan; +import static com.facebook.presto.common.predicate.Range.range; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.DateType.DATE; @@ -78,10 +82,6 @@ import static com.facebook.presto.raptor.storage.ShardStats.MAX_BINARY_INDEX_SIZE; import static com.facebook.presto.spi.StandardErrorCode.SERVER_STARTING_UP; import static com.facebook.presto.spi.StandardErrorCode.TRANSACTION_CONFLICT; -import static com.facebook.presto.spi.predicate.Range.greaterThan; -import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; -import static com.facebook.presto.spi.predicate.Range.lessThan; -import static com.facebook.presto.spi.predicate.Range.range; import static com.google.common.base.Strings.repeat; import static com.google.common.base.Ticker.systemTicker; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java index fe333dd180c09..674111c659c25 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/metadata/TestShardPredicate.java @@ -13,25 +13,25 @@ */ package com.facebook.presto.raptor.metadata; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.raptor.RaptorColumnHandle; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import io.airlift.slice.Slice; import org.testng.annotations.Test; +import static com.facebook.presto.common.predicate.Domain.create; +import static com.facebook.presto.common.predicate.Domain.singleValue; +import static com.facebook.presto.common.predicate.Range.equal; +import static com.facebook.presto.common.predicate.Range.greaterThanOrEqual; +import static com.facebook.presto.common.predicate.TupleDomain.withColumnDomains; import static com.facebook.presto.common.type.IntegerType.INTEGER; import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.raptor.RaptorColumnHandle.bucketNumberColumnHandle; import static com.facebook.presto.raptor.RaptorColumnHandle.shardUuidColumnHandle; import static com.facebook.presto.raptor.util.UuidUtil.uuidStringToBytes; -import static com.facebook.presto.spi.predicate.Domain.create; -import static com.facebook.presto.spi.predicate.Domain.singleValue; -import static com.facebook.presto.spi.predicate.Range.equal; -import static com.facebook.presto.spi.predicate.Range.greaterThanOrEqual; -import static com.facebook.presto.spi.predicate.TupleDomain.withColumnDomains; import static io.airlift.slice.Slices.utf8Slice; import static java.sql.JDBCType.VARBINARY; import static java.util.UUID.randomUUID; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java index 4f8aea58b4b9c..03ef03cad9ecb 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcFileRewriter.java @@ -15,7 +15,9 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.StandardTypes; @@ -36,8 +38,6 @@ import com.facebook.presto.raptor.filesystem.LocalOrcDataEnvironment; import com.facebook.presto.raptor.metadata.TableColumn; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java index c6ec90756c403..b278b3fc9f402 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestOrcStorageManager.java @@ -13,7 +13,10 @@ */ package com.facebook.presto.raptor.storage; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.SqlDate; import com.facebook.presto.common.type.SqlTime; import com.facebook.presto.common.type.SqlTimestamp; @@ -40,10 +43,7 @@ import com.facebook.presto.raptor.storage.InMemoryShardRecorder.RecordedShard; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.TestingNodeManager; import com.facebook.presto.type.TypeRegistry; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java index 4947c84ee6565..e007441486d80 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/TestShardEjector.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.storage; import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.metadata.InternalNode; import com.facebook.presto.raptor.backup.BackupStore; import com.facebook.presto.raptor.filesystem.LocalFileStorageService; @@ -25,7 +26,6 @@ import com.facebook.presto.raptor.metadata.ShardMetadata; import com.facebook.presto.spi.Node; import com.facebook.presto.spi.NodeManager; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.TestingNodeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java index 4da41cd99e5f7..abe7ac27d3727 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/storage/organization/TestShardCompactor.java @@ -15,8 +15,11 @@ import com.facebook.presto.PagesIndexPageSorter; import com.facebook.presto.SequencePageBuilder; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.operator.PagesIndex; import com.facebook.presto.raptor.filesystem.FileSystemContext; @@ -26,9 +29,6 @@ import com.facebook.presto.raptor.storage.StorageManager; import com.facebook.presto.raptor.storage.StoragePageSink; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.testing.MaterializedResult; import com.facebook.presto.testing.MaterializedRow; import com.google.common.collect.ImmutableList; diff --git a/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java b/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java index dc7eb8522f941..5961f8b4eec7f 100644 --- a/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java +++ b/presto-raptor/src/test/java/com/facebook/presto/raptor/systemtables/TestShardMetadataRecordCursor.java @@ -13,6 +13,9 @@ */ package com.facebook.presto.raptor.systemtables; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.Type; import com.facebook.presto.raptor.RaptorMetadata; import com.facebook.presto.raptor.metadata.ColumnInfo; @@ -25,9 +28,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.predicate.ValueSet; import com.facebook.presto.testing.MaterializedRow; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.ImmutableList; @@ -48,6 +48,8 @@ import java.util.Set; import java.util.UUID; +import static com.facebook.presto.common.predicate.Range.greaterThan; +import static com.facebook.presto.common.predicate.Range.lessThanOrEqual; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.DateType.DATE; import static com.facebook.presto.common.type.VarcharType.createVarcharType; @@ -56,8 +58,6 @@ import static com.facebook.presto.raptor.metadata.SchemaDaoUtil.createTablesWithRetry; import static com.facebook.presto.raptor.metadata.TestDatabaseShardManager.createShardManager; import static com.facebook.presto.raptor.systemtables.ShardMetadataRecordCursor.SHARD_METADATA; -import static com.facebook.presto.spi.predicate.Range.greaterThan; -import static com.facebook.presto.spi.predicate.Range.lessThanOrEqual; import static com.facebook.presto.testing.MaterializedResult.DEFAULT_PRECISION; import static com.facebook.presto.testing.TestingConnectorSession.SESSION; import static io.airlift.slice.Slices.utf8Slice; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/PageSplitterUtil.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/PageSplitterUtil.java index d49eb7a7419fe..53f09fab53279 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/PageSplitterUtil.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/PageSplitterUtil.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.rcfile; -import com.facebook.presto.spi.Page; +import com.facebook.presto.common.Page; import com.google.common.collect.ImmutableList; import java.util.List; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java index f9672d4d09944..10ca73bc94915 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileReader.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksum; import com.facebook.presto.rcfile.RcFileWriteValidation.WriteChecksumBuilder; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableMap; import io.airlift.slice.BasicSliceInput; import io.airlift.slice.ChunkedSliceInput; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java index 8df8058097366..c84e208938a8d 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriteValidation.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import io.airlift.slice.Slice; diff --git a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java index 78c6cfd050b1d..ab9bf93777dfe 100644 --- a/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java +++ b/presto-rcfile/src/main/java/com/facebook/presto/rcfile/RcFileWriter.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.rcfile; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.rcfile.RcFileCompressor.CompressedSliceOutput; import com.facebook.presto.rcfile.RcFileWriteValidation.RcFileWriteValidationBuilder; -import com.facebook.presto.spi.Page; import com.google.common.io.Closer; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; diff --git a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java index c419483c51632..f6ef8f4376b4c 100644 --- a/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java +++ b/presto-rcfile/src/test/java/com/facebook/presto/rcfile/RcFileTester.java @@ -14,6 +14,7 @@ package com.facebook.presto.rcfile; import com.facebook.presto.block.BlockEncodingManager; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; @@ -34,7 +35,6 @@ import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.rcfile.binary.BinaryRcFileEncoding; import com.facebook.presto.rcfile.text.TextRcFileEncoding; -import com.facebook.presto.spi.Page; import com.facebook.presto.sql.analyzer.FeaturesConfig; import com.facebook.presto.type.TypeRegistry; import com.google.common.collect.AbstractIterator; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java index 8dc5053e179c3..701d33181f7c8 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkOutputOperator.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spark.execution; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.type.Type; @@ -24,7 +25,6 @@ import com.facebook.presto.operator.OutputFactory; import com.facebook.presto.operator.PartitionFunction; import com.facebook.presto.spark.classloader_interface.PrestoSparkRow; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.plan.PlanNodeId; import com.facebook.presto.spi.relation.ConstantExpression; import com.facebook.presto.sql.planner.OutputPartitioning; diff --git a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java index 8f23718b1e388..e60443627376a 100644 --- a/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java +++ b/presto-spark-base/src/main/java/com/facebook/presto/spark/execution/PrestoSparkRemoteSourceOperator.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spark.execution; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.Split; @@ -21,8 +23,6 @@ import com.facebook.presto.operator.SourceOperator; import com.facebook.presto.operator.SourceOperatorFactory; import com.facebook.presto.spark.classloader_interface.PrestoSparkRow; -import com.facebook.presto.spi.Page; -import com.facebook.presto.spi.PageBuilder; import com.facebook.presto.spi.UpdatablePageSource; import com.facebook.presto.spi.plan.PlanNodeId; import com.google.common.collect.ImmutableList; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/BucketFunction.java b/presto-spi/src/main/java/com/facebook/presto/spi/BucketFunction.java index 343dab4c431e2..ec90214949465 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/BucketFunction.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/BucketFunction.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; + public interface BucketFunction { /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSink.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSink.java index 9113e0287e597..16b099922c302 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSink.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSink.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; import io.airlift.slice.Slice; import java.util.Collection; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSource.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSource.java index 12e83f5f5c94b..046b750fd324f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSource.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorPageSource.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; + import java.io.Closeable; import java.io.IOException; import java.util.concurrent.CompletableFuture; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorResolvedIndex.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorResolvedIndex.java index 3306b4d25ef6c..0379f5caa2ea6 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorResolvedIndex.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorResolvedIndex.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayout.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayout.java index 4d22497d38c70..ce35a515cbd0c 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayout.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayout.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain; import java.util.List; import java.util.Objects; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayoutResult.java b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayoutResult.java index 6d75e85269b9d..26692b77c9581 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayoutResult.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/ConnectorTableLayoutResult.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain; import static java.util.Objects.requireNonNull; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/Constraint.java b/presto-spi/src/main/java/com/facebook/presto/spi/Constraint.java index f42c503388357..733e9a144a061 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/Constraint.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/Constraint.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import java.util.Map; import java.util.Optional; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/DiscretePredicates.java b/presto-spi/src/main/java/com/facebook/presto/spi/DiscretePredicates.java index e835033a33f29..bf0aa6e41cf4e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/DiscretePredicates.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/DiscretePredicates.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.spi; -import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.common.predicate.TupleDomain; import java.util.ArrayList; import java.util.List; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/FixedPageSource.java b/presto-spi/src/main/java/com/facebook/presto/spi/FixedPageSource.java index f0a73fd6a72a9..3051379a50198 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/FixedPageSource.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/FixedPageSource.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; + import java.io.IOException; import java.util.Iterator; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexer.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexer.java index d80fbb06dd3d1..6d4964f0eac28 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexer.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageIndexer.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; + public interface PageIndexer { /** diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java b/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java index d586fe49cc08f..6521e47f8bc82 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/PageSorter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java b/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java index 208a704c87360..e146c99b6e9a2 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/RecordPageSource.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/SystemTable.java b/presto-spi/src/main/java/com/facebook/presto/spi/SystemTable.java index 39b822170d33a..dc508db859300 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/SystemTable.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/SystemTable.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; /** * Exactly one of {@link #cursor} or {@link #pageSource} must be implemented. diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java index dae792c1c18cd..4581566968f77 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/ConnectorMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.connector; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -33,7 +34,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.api.Experimental; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java index e4d93cc76d18a..eb0f265fb4bc3 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.spi.connector.classloader; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; @@ -36,7 +37,6 @@ import com.facebook.presto.spi.connector.ConnectorOutputMetadata; import com.facebook.presto.spi.connector.ConnectorPartitioningHandle; import com.facebook.presto.spi.connector.ConnectorPartitioningMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.security.GrantInfo; import com.facebook.presto.spi.security.PrestoPrincipal; import com.facebook.presto.spi.security.Privilege; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorPageSink.java b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorPageSink.java index eb674a6beef94..49450ba7b19f3 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorPageSink.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/connector/classloader/ClassLoaderSafeConnectorPageSink.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.connector.classloader; +import com.facebook.presto.common.Page; import com.facebook.presto.spi.ConnectorPageSink; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java index e777ef26257a5..0f7d525f3a09f 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerde.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.spi.page; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.BlockEncodingSerde; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.spiller.SpillCipher; import io.airlift.slice.DynamicSliceOutput; import io.airlift.slice.Slice; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java index 86f0c223c54a3..5684646dbed1e 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/page/PagesSerdeUtil.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.page; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockEncodingSerde; -import com.facebook.presto.spi.Page; import io.airlift.slice.Slice; import io.airlift.slice.SliceInput; import io.airlift.slice.SliceOutput; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/plan/TableScanNode.java b/presto-spi/src/main/java/com/facebook/presto/spi/plan/TableScanNode.java index 7c9348f6aabe3..ee2b64acc10ec 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/plan/TableScanNode.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/plan/TableScanNode.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.plan; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.TableHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.relation.VariableReferenceExpression; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/DomainTranslator.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/DomainTranslator.java index bcd31b64fcfaa..261290887a750 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/DomainTranslator.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/DomainTranslator.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.spi.relation; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.TupleDomain; import java.util.Optional; diff --git a/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java b/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java index 31fffedcad4eb..c5f5b8c823c09 100644 --- a/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java +++ b/presto-spi/src/main/java/com/facebook/presto/spi/relation/PredicateCompiler.java @@ -14,6 +14,7 @@ package com.facebook.presto.spi.relation; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.relation.Predicate; import com.facebook.presto.spi.api.Experimental; import java.util.function.Supplier; diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java deleted file mode 100644 index 12c39b2f16e7c..0000000000000 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestEquatableValueSet.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * 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 com.facebook.presto.spi.predicate; - -import com.facebook.airlift.json.ObjectMapperProvider; -import com.facebook.presto.common.block.Block; -import com.facebook.presto.common.block.TestingBlockEncodingSerde; -import com.facebook.presto.common.block.TestingBlockJsonSerde; -import com.facebook.presto.common.type.TestingTypeDeserializer; -import com.facebook.presto.common.type.TestingTypeManager; -import com.facebook.presto.common.type.Type; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; -import org.testng.annotations.Test; - -import java.util.Iterator; - -import static com.facebook.presto.common.type.TestingIdType.ID; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; - -public class TestEquatableValueSet -{ - @Test - public void testEmptySet() - { - EquatableValueSet equatables = EquatableValueSet.none(ID); - assertEquals(equatables.getType(), ID); - assertTrue(equatables.isNone()); - assertFalse(equatables.isAll()); - assertFalse(equatables.isSingleValue()); - assertTrue(equatables.isWhiteList()); - assertEquals(equatables.getValues().size(), 0); - assertEquals(equatables.complement(), EquatableValueSet.all(ID)); - assertFalse(equatables.containsValue(0L)); - assertFalse(equatables.containsValue(1L)); - } - - @Test - public void testEntireSet() - { - EquatableValueSet equatables = EquatableValueSet.all(ID); - assertEquals(equatables.getType(), ID); - assertFalse(equatables.isNone()); - assertTrue(equatables.isAll()); - assertFalse(equatables.isSingleValue()); - assertFalse(equatables.isWhiteList()); - assertEquals(equatables.getValues().size(), 0); - assertEquals(equatables.complement(), EquatableValueSet.none(ID)); - assertTrue(equatables.containsValue(0L)); - assertTrue(equatables.containsValue(1L)); - } - - @Test - public void testSingleValue() - { - EquatableValueSet equatables = EquatableValueSet.of(ID, 10L); - - EquatableValueSet complement = (EquatableValueSet) EquatableValueSet.all(ID).subtract(equatables); - - // Whitelist - assertEquals(equatables.getType(), ID); - assertFalse(equatables.isNone()); - assertFalse(equatables.isAll()); - assertTrue(equatables.isSingleValue()); - assertTrue(equatables.isWhiteList()); - assertTrue(Iterables.elementsEqual(equatables.getValues(), ImmutableList.of(10L))); - assertEquals(equatables.complement(), complement); - assertFalse(equatables.containsValue(0L)); - assertFalse(equatables.containsValue(1L)); - assertTrue(equatables.containsValue(10L)); - - // Blacklist - assertEquals(complement.getType(), ID); - assertFalse(complement.isNone()); - assertFalse(complement.isAll()); - assertFalse(complement.isSingleValue()); - assertFalse(complement.isWhiteList()); - assertTrue(Iterables.elementsEqual(complement.getValues(), ImmutableList.of(10L))); - assertEquals(complement.complement(), equatables); - assertTrue(complement.containsValue(0L)); - assertTrue(complement.containsValue(1L)); - assertFalse(complement.containsValue(10L)); - } - - @Test - public void testMultipleValues() - { - EquatableValueSet equatables = EquatableValueSet.of(ID, 1L, 2L, 3L, 1L); - - EquatableValueSet complement = (EquatableValueSet) EquatableValueSet.all(ID).subtract(equatables); - - // Whitelist - assertEquals(equatables.getType(), ID); - assertFalse(equatables.isNone()); - assertFalse(equatables.isAll()); - assertFalse(equatables.isSingleValue()); - assertTrue(equatables.isWhiteList()); - assertTrue(Iterables.elementsEqual(equatables.getValues(), ImmutableList.of(1L, 2L, 3L))); - assertEquals(equatables.complement(), complement); - assertFalse(equatables.containsValue(0L)); - assertTrue(equatables.containsValue(1L)); - assertTrue(equatables.containsValue(2L)); - assertTrue(equatables.containsValue(3L)); - assertFalse(equatables.containsValue(4L)); - - // Blacklist - assertEquals(complement.getType(), ID); - assertFalse(complement.isNone()); - assertFalse(complement.isAll()); - assertFalse(complement.isSingleValue()); - assertFalse(complement.isWhiteList()); - assertTrue(Iterables.elementsEqual(complement.getValues(), ImmutableList.of(1L, 2L, 3L))); - assertEquals(complement.complement(), equatables); - assertTrue(complement.containsValue(0L)); - assertFalse(complement.containsValue(1L)); - assertFalse(complement.containsValue(2L)); - assertFalse(complement.containsValue(3L)); - assertTrue(complement.containsValue(4L)); - } - - @Test - public void testGetSingleValue() - { - assertEquals(EquatableValueSet.of(ID, 0L).getSingleValue(), 0L); - try { - EquatableValueSet.all(ID).getSingleValue(); - fail(); - } - catch (IllegalStateException ignored) { - } - } - - @Test - public void testOverlaps() - { - assertTrue(EquatableValueSet.all(ID).overlaps(EquatableValueSet.all(ID))); - assertFalse(EquatableValueSet.all(ID).overlaps(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.all(ID).overlaps(EquatableValueSet.of(ID, 0L))); - assertTrue(EquatableValueSet.all(ID).overlaps(EquatableValueSet.of(ID, 0L, 1L))); - assertTrue(EquatableValueSet.all(ID).overlaps(EquatableValueSet.of(ID, 0L, 1L).complement())); - - assertFalse(EquatableValueSet.none(ID).overlaps(EquatableValueSet.all(ID))); - assertFalse(EquatableValueSet.none(ID).overlaps(EquatableValueSet.none(ID))); - assertFalse(EquatableValueSet.none(ID).overlaps(EquatableValueSet.of(ID, 0L))); - assertFalse(EquatableValueSet.none(ID).overlaps(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.none(ID).overlaps(EquatableValueSet.of(ID, 0L, 1L).complement())); - - assertTrue(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.all(ID))); - assertFalse(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 0L))); - assertFalse(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 1L))); - assertTrue(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 0L, 1L).complement())); - assertFalse(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 0L).complement())); - assertTrue(EquatableValueSet.of(ID, 0L).overlaps(EquatableValueSet.of(ID, 1L).complement())); - - assertTrue(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.all(ID))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.of(ID, 0L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.of(ID, -1L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.of(ID, 0L, 1L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).overlaps(EquatableValueSet.of(ID, -1L).complement())); - - assertTrue(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.all(ID))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.none(ID))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(ID, 0L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(ID, -1L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(ID, 0L, 1L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).complement().overlaps(EquatableValueSet.of(ID, -1L).complement())); - } - - @Test - public void testContains() - { - assertTrue(EquatableValueSet.all(ID).contains(EquatableValueSet.all(ID))); - assertTrue(EquatableValueSet.all(ID).contains(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.all(ID).contains(EquatableValueSet.of(ID, 0L))); - assertTrue(EquatableValueSet.all(ID).contains(EquatableValueSet.of(ID, 0L, 1L))); - assertTrue(EquatableValueSet.all(ID).contains(EquatableValueSet.of(ID, 0L, 1L).complement())); - - assertFalse(EquatableValueSet.none(ID).contains(EquatableValueSet.all(ID))); - assertTrue(EquatableValueSet.none(ID).contains(EquatableValueSet.none(ID))); - assertFalse(EquatableValueSet.none(ID).contains(EquatableValueSet.of(ID, 0L))); - assertFalse(EquatableValueSet.none(ID).contains(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.none(ID).contains(EquatableValueSet.of(ID, 0L, 1L).complement())); - - assertFalse(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.all(ID))); - assertTrue(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.of(ID, 0L))); - assertFalse(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.of(ID, 0L, 1L).complement())); - assertFalse(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.of(ID, 0L).complement())); - assertFalse(EquatableValueSet.of(ID, 0L).contains(EquatableValueSet.of(ID, 1L).complement())); - - assertFalse(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.all(ID))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.none(ID))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 0L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 0L, 2L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 0L, 1L).complement())); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 0L).complement())); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).contains(EquatableValueSet.of(ID, 1L).complement())); - - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.all(ID))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.none(ID))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.of(ID, 0L))); - assertTrue(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.of(ID, -1L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.of(ID, 0L, 1L))); - assertFalse(EquatableValueSet.of(ID, 0L, 1L).complement().contains(EquatableValueSet.of(ID, -1L).complement())); - } - - @Test - public void testIntersect() - { - assertEquals(EquatableValueSet.none(ID).intersect(EquatableValueSet.none(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.all(ID).intersect(EquatableValueSet.all(ID)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.none(ID).intersect(EquatableValueSet.all(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.none(ID).intersect(EquatableValueSet.of(ID, 0L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.all(ID).intersect(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L).intersect(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).intersect(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().intersect(EquatableValueSet.of(ID, 0L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().intersect(EquatableValueSet.of(ID, 1L)), EquatableValueSet.of(ID, 1L)); - assertEquals(EquatableValueSet.of(ID, 0L).intersect(EquatableValueSet.of(ID, 1L).complement()), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).intersect(EquatableValueSet.of(ID, 0L, 2L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).complement().intersect(EquatableValueSet.of(ID, 0L, 2L)), EquatableValueSet.of(ID, 2L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).complement().intersect(EquatableValueSet.of(ID, 0L, 2L).complement()), EquatableValueSet.of(ID, 0L, 1L, 2L).complement()); - } - - @Test - public void testUnion() - { - assertEquals(EquatableValueSet.none(ID).union(EquatableValueSet.none(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.all(ID).union(EquatableValueSet.all(ID)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.none(ID).union(EquatableValueSet.all(ID)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.none(ID).union(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.all(ID).union(EquatableValueSet.of(ID, 0L)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).union(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).union(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L, 1L)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().union(EquatableValueSet.of(ID, 0L)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().union(EquatableValueSet.of(ID, 1L)), EquatableValueSet.of(ID, 0L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L).union(EquatableValueSet.of(ID, 1L).complement()), EquatableValueSet.of(ID, 1L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).union(EquatableValueSet.of(ID, 0L, 2L)), EquatableValueSet.of(ID, 0L, 1L, 2L)); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).complement().union(EquatableValueSet.of(ID, 0L, 2L)), EquatableValueSet.of(ID, 1L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L, 1L).complement().union(EquatableValueSet.of(ID, 0L, 2L).complement()), EquatableValueSet.of(ID, 0L).complement()); - } - - @Test - public void testSubtract() - { - assertEquals(EquatableValueSet.all(ID).subtract(EquatableValueSet.all(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.all(ID).subtract(EquatableValueSet.none(ID)), EquatableValueSet.all(ID)); - assertEquals(EquatableValueSet.all(ID).subtract(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L).complement()); - assertEquals(EquatableValueSet.all(ID).subtract(EquatableValueSet.of(ID, 0L, 1L)), EquatableValueSet.of(ID, 0L, 1L).complement()); - assertEquals(EquatableValueSet.all(ID).subtract(EquatableValueSet.of(ID, 0L, 1L).complement()), EquatableValueSet.of(ID, 0L, 1L)); - - assertEquals(EquatableValueSet.none(ID).subtract(EquatableValueSet.all(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.none(ID).subtract(EquatableValueSet.none(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.none(ID).subtract(EquatableValueSet.of(ID, 0L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.none(ID).subtract(EquatableValueSet.of(ID, 0L, 1L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.none(ID).subtract(EquatableValueSet.of(ID, 0L, 1L).complement()), EquatableValueSet.none(ID)); - - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.all(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.none(ID)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 0L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 0L).complement()), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 1L)), EquatableValueSet.of(ID, 0L)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 1L).complement()), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 0L, 1L)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).subtract(EquatableValueSet.of(ID, 0L, 1L).complement()), EquatableValueSet.of(ID, 0L)); - - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.all(ID)), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.none(ID)), EquatableValueSet.of(ID, 0L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 0L)), EquatableValueSet.of(ID, 0L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 0L).complement()), EquatableValueSet.none(ID)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 1L)), EquatableValueSet.of(ID, 0L, 1L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 1L).complement()), EquatableValueSet.of(ID, 1L)); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 0L, 1L)), EquatableValueSet.of(ID, 0L, 1L).complement()); - assertEquals(EquatableValueSet.of(ID, 0L).complement().subtract(EquatableValueSet.of(ID, 0L, 1L).complement()), EquatableValueSet.of(ID, 1L)); - } - - @Test(expectedExceptions = UnsupportedOperationException.class) - public void testUnmodifiableCollection() - { - EquatableValueSet.of(ID, 1L).getValues().clear(); - } - - @Test(expectedExceptions = UnsupportedOperationException.class) - public void testUnmodifiableValueEntries() - { - EquatableValueSet.of(ID, 1L).getEntries().clear(); - } - - @Test(expectedExceptions = UnsupportedOperationException.class) - public void testUnmodifiableIterator() - { - Iterator iterator = EquatableValueSet.of(ID, 1L).getValues().iterator(); - iterator.next(); - iterator.remove(); - } - - @Test(expectedExceptions = UnsupportedOperationException.class) - public void testUnmodifiableValueEntryIterator() - { - Iterator iterator = EquatableValueSet.of(ID, 1L).getEntries().iterator(); - iterator.next(); - iterator.remove(); - } - - @Test - public void testJsonSerialization() - throws Exception - { - TestingTypeManager typeManager = new TestingTypeManager(); - TestingBlockEncodingSerde blockEncodingSerde = new TestingBlockEncodingSerde(typeManager); - - ObjectMapper mapper = new ObjectMapperProvider().get() - .registerModule(new SimpleModule() - .addDeserializer(Type.class, new TestingTypeDeserializer(typeManager)) - .addSerializer(Block.class, new TestingBlockJsonSerde.Serializer(blockEncodingSerde)) - .addDeserializer(Block.class, new TestingBlockJsonSerde.Deserializer(blockEncodingSerde))); - - EquatableValueSet set = EquatableValueSet.all(ID); - assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); - - set = EquatableValueSet.none(ID); - assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); - - set = EquatableValueSet.of(ID, 1L); - assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); - - set = EquatableValueSet.of(ID, 1L, 2L); - assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); - - set = EquatableValueSet.of(ID, 1L, 2L).complement(); - assertEquals(set, mapper.readValue(mapper.writeValueAsString(set), EquatableValueSet.class)); - } -} diff --git a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java index 1633880d540a3..4b5cb2fd74ed9 100644 --- a/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java +++ b/presto-spi/src/test/java/com/facebook/presto/spi/predicate/TestTupleDomain.java @@ -17,6 +17,11 @@ import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.TestingBlockEncodingSerde; import com.facebook.presto.common.block.TestingBlockJsonSerde; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.common.type.TestingTypeDeserializer; import com.facebook.presto.common.type.TestingTypeManager; import com.facebook.presto.common.type.Type; @@ -34,11 +39,11 @@ import java.io.IOException; import java.util.Map; +import static com.facebook.presto.common.predicate.TupleDomain.columnWiseUnion; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.BooleanType.BOOLEAN; import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.common.type.VarcharType.VARCHAR; -import static com.facebook.presto.spi.predicate.TupleDomain.columnWiseUnion; import static io.airlift.slice.Slices.utf8Slice; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java index e6d3a76dbc210..a58f526f090ae 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/ExampleSystemTable.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.InMemoryRecordSet; @@ -21,7 +22,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SystemTable; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.metadata.MetadataUtil.TableMetadataBuilder.tableMetadataBuilder; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexHandle.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexHandle.java index c90c3648b02cc..4f9c5f5eecae9 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexHandle.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorIndexHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableSet; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexMetadata.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexMetadata.java index 42d43ff661faf..e294d48a1343b 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexMetadata.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexMetadata.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorResolvedIndex; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.tpch.TpchMetadata; import com.facebook.presto.tpch.TpchTableHandle; import com.google.common.collect.ImmutableList; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java index e81659170c072..b63bdc369f1fe 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexProvider.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorIndex; @@ -21,8 +23,6 @@ import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.connector.ConnectorIndexProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.split.MappedRecordSet; import com.facebook.presto.tpch.TpchColumnHandle; import com.google.common.base.Function; diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java index 317e4348e8ed4..95a4d47ca65d2 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/tpch/TpchIndexedData.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.tests.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.tpch.TpchMetadata; import com.facebook.presto.tpch.TpchRecordSetProvider; import com.facebook.presto.tpch.TpchTableHandle; diff --git a/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java b/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java index d8aabd377c900..d61a0fd22b676 100644 --- a/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java +++ b/presto-tests/src/test/java/com/facebook/presto/tests/TestLocalQueries.java @@ -34,10 +34,10 @@ import static com.facebook.airlift.json.JsonCodec.jsonCodec; import static com.facebook.presto.SystemSessionProperties.PUSH_PARTIAL_AGGREGATION_THROUGH_JOIN; +import static com.facebook.presto.common.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.common.type.DoubleType.DOUBLE; import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.common.type.VarcharType.createVarcharType; -import static com.facebook.presto.spi.predicate.Marker.Bound.EXACTLY; import static com.facebook.presto.testing.MaterializedResult.resultBuilder; import static com.facebook.presto.testing.TestingSession.TESTING_CATALOG; import static com.facebook.presto.testing.TestingSession.testSessionBuilder; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftDomain.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftDomain.java index e6b0e0eb26ace..313da476fd2cb 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftDomain.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftDomain.java @@ -16,8 +16,8 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.predicate.Domain; import com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftValueSet; -import com.facebook.presto.spi.predicate.Domain; import java.util.Objects; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java index fa560743d4b01..818403af65225 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/PrestoThriftPageResult.java @@ -16,9 +16,9 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.google.common.collect.ImmutableList; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftAllOrNoneValueSet.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftAllOrNoneValueSet.java index dc174735c086b..3e5ae6994699c 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftAllOrNoneValueSet.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftAllOrNoneValueSet.java @@ -16,7 +16,7 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; -import com.facebook.presto.spi.predicate.AllOrNoneValueSet; +import com.facebook.presto.common.predicate.AllOrNoneValueSet; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java index 7836b9900b6ad..61625afb60fab 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftEquatableValueSet.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.predicate.EquatableValueSet; +import com.facebook.presto.common.predicate.EquatableValueSet.ValueEntry; import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.predicate.EquatableValueSet; -import com.facebook.presto.spi.predicate.EquatableValueSet.ValueEntry; import java.util.ArrayList; import java.util.List; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftRangeValueSet.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftRangeValueSet.java index 8d908e1c5de78..0fd666a5149ce 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftRangeValueSet.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftRangeValueSet.java @@ -18,11 +18,11 @@ import com.facebook.drift.annotations.ThriftEnumValue; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; +import com.facebook.presto.common.predicate.Marker; +import com.facebook.presto.common.predicate.Marker.Bound; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.SortedRangeSet; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; -import com.facebook.presto.spi.predicate.Marker; -import com.facebook.presto.spi.predicate.Marker.Bound; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.SortedRangeSet; import javax.annotation.Nullable; diff --git a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftValueSet.java b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftValueSet.java index ff79c63473588..dc320a2ffe95a 100644 --- a/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftValueSet.java +++ b/presto-thrift-connector-api/src/main/java/com/facebook/presto/connector/thrift/api/valuesets/PrestoThriftValueSet.java @@ -16,10 +16,10 @@ import com.facebook.drift.annotations.ThriftConstructor; import com.facebook.drift.annotations.ThriftField; import com.facebook.drift.annotations.ThriftStruct; -import com.facebook.presto.spi.predicate.AllOrNoneValueSet; -import com.facebook.presto.spi.predicate.EquatableValueSet; -import com.facebook.presto.spi.predicate.SortedRangeSet; -import com.facebook.presto.spi.predicate.ValueSet; +import com.facebook.presto.common.predicate.AllOrNoneValueSet; +import com.facebook.presto.common.predicate.EquatableValueSet; +import com.facebook.presto.common.predicate.SortedRangeSet; +import com.facebook.presto.common.predicate.ValueSet; import javax.annotation.Nullable; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java index a21ff423ed0ce..928b68edec644 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/TestReadWrite.java @@ -14,13 +14,13 @@ package com.facebook.presto.connector.thrift.api; import com.facebook.airlift.stats.cardinality.HyperLogLog; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.ArrayType; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.InMemoryRecordSet; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import org.testng.annotations.Test; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java index a1da65e0ab15c..3d2bd7ba61403 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftAllOrNoneValueSet.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.connector.thrift.api.valuesets; -import com.facebook.presto.spi.predicate.ValueSet; +import com.facebook.presto.common.predicate.ValueSet; import org.testng.annotations.Test; import static com.facebook.presto.common.type.HyperLogLogType.HYPER_LOG_LOG; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java index bf2eb0bd5c5ac..396936cc9d3a1 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftEquatableValueSet.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.connector.thrift.api.valuesets; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftJson; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; diff --git a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java index f6a2a503639a6..cfc3d06a31791 100644 --- a/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java +++ b/presto-thrift-connector-api/src/test/java/com/facebook/presto/connector/thrift/api/valuesets/TestPrestoThriftRangeValueSet.java @@ -13,22 +13,22 @@ */ package com.facebook.presto.connector.thrift.api.valuesets; +import com.facebook.presto.common.predicate.Range; +import com.facebook.presto.common.predicate.ValueSet; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftBigint; import com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftMarker; import com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftRange; -import com.facebook.presto.spi.predicate.Range; -import com.facebook.presto.spi.predicate.ValueSet; import com.google.common.collect.ImmutableList; import org.testng.annotations.Test; +import static com.facebook.presto.common.predicate.Range.range; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.connector.thrift.api.PrestoThriftBlock.bigintData; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.ABOVE; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.BELOW; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftRangeValueSet.PrestoThriftBound.EXACTLY; import static com.facebook.presto.connector.thrift.api.valuesets.PrestoThriftValueSet.fromValueSet; -import static com.facebook.presto.spi.predicate.Range.range; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexHandle.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexHandle.java index 44813d54eccba..c2d6ea1489d8e 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexHandle.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexHandle.java @@ -13,11 +13,11 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorIndexHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -95,6 +95,6 @@ public int hashCode() public String toString() { return schemaTableName.toString() + - session.map(value -> ", constraint = " + tupleDomain.toString(value)).orElse(""); + session.map(value -> ", constraint = " + tupleDomain.toString(value.getSqlFunctionProperties())).orElse(""); } } diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java index bb9e7fe807f9c..52fb901938c8f 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftIndexPageSource.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.thrift; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableToken; @@ -25,7 +26,6 @@ import com.facebook.presto.connector.thrift.api.PrestoThriftTupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordSet; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java index 3544ebca267aa..15f2f743ddec1 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftMetadata.java @@ -15,6 +15,7 @@ import com.facebook.drift.TException; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.connector.thrift.annotations.ForMetadataRefresh; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableSchemaName; @@ -37,7 +38,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.TableNotFoundException; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java index 249aa7dbf512e..b5a4553c0a729 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftPageSource.java @@ -14,6 +14,7 @@ package com.facebook.presto.connector.thrift; import com.facebook.drift.client.DriftClient; +import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableToken; @@ -22,7 +23,6 @@ import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorPageSource; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.Page; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableLayoutHandle.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableLayoutHandle.java index cd17199b90f12..7908e024f0242 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableLayoutHandle.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/ThriftTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableSet; diff --git a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/util/TupleDomainConversion.java b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/util/TupleDomainConversion.java index d627dc6299c18..ad3d0843fd1fb 100644 --- a/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/util/TupleDomainConversion.java +++ b/presto-thrift-connector/src/main/java/com/facebook/presto/connector/thrift/util/TupleDomainConversion.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.connector.thrift.util; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.connector.thrift.ThriftColumnHandle; import com.facebook.presto.connector.thrift.api.PrestoThriftTupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import static com.facebook.presto.connector.thrift.api.PrestoThriftDomain.fromDomain; import static com.google.common.collect.ImmutableMap.toImmutableMap; diff --git a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java index a99995f79b2e0..e3552e7cf41a1 100644 --- a/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java +++ b/presto-thrift-connector/src/test/java/com/facebook/presto/connector/thrift/TestThriftIndexPageSource.java @@ -13,7 +13,9 @@ */ package com.facebook.presto.connector.thrift; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftId; import com.facebook.presto.connector.thrift.api.PrestoThriftNullableColumnSet; @@ -29,9 +31,7 @@ import com.facebook.presto.connector.thrift.api.PrestoThriftTupleDomain; import com.facebook.presto.connector.thrift.api.datatypes.PrestoThriftInteger; import com.facebook.presto.spi.InMemoryRecordSet; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.primitives.Ints; diff --git a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java index bedf6bbae243c..d43d1964f92c6 100644 --- a/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java +++ b/presto-thrift-testing-server/src/main/java/com/facebook/presto/connector/thrift/server/ThriftTpchService.java @@ -14,6 +14,8 @@ package com.facebook.presto.connector.thrift.server; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.Page; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.connector.thrift.api.PrestoThriftBlock; import com.facebook.presto.connector.thrift.api.PrestoThriftColumnMetadata; @@ -31,9 +33,7 @@ import com.facebook.presto.connector.thrift.api.PrestoThriftTableMetadata; import com.facebook.presto.connector.thrift.api.PrestoThriftTupleDomain; import com.facebook.presto.spi.ConnectorPageSource; -import com.facebook.presto.spi.Page; import com.facebook.presto.spi.RecordPageSource; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import com.google.common.util.concurrent.ListenableFuture; diff --git a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java index b24421fc433f0..d571057317e39 100644 --- a/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java +++ b/presto-tpcds/src/main/java/com/facebook/presto/tpcds/TpcdsMetadata.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.tpcds; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.BigintType; import com.facebook.presto.common.type.DateType; import com.facebook.presto.common.type.IntegerType; @@ -30,7 +31,6 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.TableStatistics; import com.facebook.presto.tpcds.statistics.TpcdsTableStatisticsFactory; import com.google.common.collect.ImmutableList; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java index 5b268fbf8d0b8..5bc45c1d4f3f5 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchBucketFunction.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.spi.BucketFunction; -import com.facebook.presto.spi.Page; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java index cc8dd1d4f8feb..2fcfe2ec699a6 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchMetadata.java @@ -14,6 +14,9 @@ package com.facebook.presto.tpch; import com.facebook.presto.common.block.SortOrder; +import com.facebook.presto.common.predicate.Domain; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.VarcharType; import com.facebook.presto.spi.ColumnHandle; @@ -31,9 +34,6 @@ import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.SortingProperty; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.predicate.Domain; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.ComputedStatistics; import com.facebook.presto.spi.statistics.DoubleRange; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java index 11e48775fbabd..60002749bef32 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSet.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import io.airlift.slice.Slice; import io.airlift.slice.Slices; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSetProvider.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSetProvider.java index 1ab2932a42cfd..88aa459639e6c 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSetProvider.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchRecordSetProvider.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.google.common.collect.ImmutableList; import io.airlift.tpch.TpchColumn; import io.airlift.tpch.TpchColumnType; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchSplit.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchSplit.java index c0a0179c7cd0b..e3a7af748a6c1 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchSplit.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchSplit.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.schedule.NodeSelectionStrategy; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchTableLayoutHandle.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchTableLayoutHandle.java index 422f36e49e2dc..9731d6eb83d5e 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchTableLayoutHandle.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/TpchTableLayoutHandle.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; -import com.facebook.presto.spi.predicate.TupleDomain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/presto-tpch/src/main/java/com/facebook/presto/tpch/util/PredicateUtils.java b/presto-tpch/src/main/java/com/facebook/presto/tpch/util/PredicateUtils.java index 2c90d3f28afee..dd5b594eba121 100644 --- a/presto-tpch/src/main/java/com/facebook/presto/tpch/util/PredicateUtils.java +++ b/presto-tpch/src/main/java/com/facebook/presto/tpch/util/PredicateUtils.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.tpch.util; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.tpch.TpchColumnHandle; import com.google.common.collect.ImmutableMap; diff --git a/presto-tpch/src/test/java/com/facebook/presto/tpch/TestTpchMetadata.java b/presto-tpch/src/test/java/com/facebook/presto/tpch/TestTpchMetadata.java index 16987b5fa5410..4c27927e9e3a3 100644 --- a/presto-tpch/src/test/java/com/facebook/presto/tpch/TestTpchMetadata.java +++ b/presto-tpch/src/test/java/com/facebook/presto/tpch/TestTpchMetadata.java @@ -13,14 +13,14 @@ */ package com.facebook.presto.tpch; +import com.facebook.presto.common.predicate.NullableValue; +import com.facebook.presto.common.predicate.TupleDomain; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.ConnectorTableLayoutResult; import com.facebook.presto.spi.Constraint; import com.facebook.presto.spi.SchemaTableName; -import com.facebook.presto.spi.predicate.NullableValue; -import com.facebook.presto.spi.predicate.TupleDomain; import com.facebook.presto.spi.statistics.ColumnStatistics; import com.facebook.presto.spi.statistics.DoubleRange; import com.facebook.presto.spi.statistics.Estimate; @@ -345,7 +345,7 @@ private Predicate> convertToPredicate(TupleDoma private void assertTupleDomainEquals(TupleDomain actual, TupleDomain expected, ConnectorSession session) { if (!Objects.equals(actual, expected)) { - fail(format("expected [%s] but found [%s]", expected.toString(session), actual.toString(session))); + fail(format("expected [%s] but found [%s]", expected.toString(session.getSqlFunctionProperties()), actual.toString(session.getSqlFunctionProperties()))); } } From efe29ef9d4ac84ca31675b97caa7603bb3ee8950 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 5 May 2020 21:45:01 -0700 Subject: [PATCH 071/129] Remove unused OutOfRangeException --- .../presto/common/OutOfRangeException.java | 39 ------------------- .../facebook/presto/common/type/Decimals.java | 9 ----- 2 files changed, 48 deletions(-) delete mode 100644 presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java diff --git a/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java b/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java deleted file mode 100644 index 84c1bdf045715..0000000000000 --- a/presto-common/src/main/java/com/facebook/presto/common/OutOfRangeException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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 com.facebook.presto.common; - -public class OutOfRangeException - extends RuntimeException -{ - public OutOfRangeException(String message) - { - this(message, null); - } - - public OutOfRangeException(Throwable throwable) - { - this(null, throwable); - } - - public OutOfRangeException(String message, Throwable cause) - { - super(message, cause); - } - - @Override - public String getMessage() - { - return super.getMessage(); - } -} diff --git a/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java b/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java index 1b6f9faf0de32..50869483517cb 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/Decimals.java @@ -13,7 +13,6 @@ */ package com.facebook.presto.common.type; -import com.facebook.presto.common.OutOfRangeException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import io.airlift.slice.Slice; @@ -31,7 +30,6 @@ import static java.lang.Math.abs; import static java.lang.Math.pow; import static java.lang.Math.round; -import static java.lang.String.format; import static java.math.BigInteger.TEN; import static java.math.RoundingMode.UNNECESSARY; @@ -247,13 +245,6 @@ public static boolean overflows(BigDecimal value, long precision) return value.precision() > precision; } - public static void checkOverflow(BigInteger value) - { - if (overflows(value)) { - throw new OutOfRangeException(format("Value is out of range: %s", value.toString())); - } - } - public static BigDecimal readBigDecimal(DecimalType type, Block block, int position) { BigInteger unscaledValue = type.isShort() From 76d18ba99ad036a891ebcdf7df744c952ed6f84b Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Tue, 5 May 2020 21:48:07 -0700 Subject: [PATCH 072/129] Catch InvalidFunctionArgumentException and rethrow as PrestoException --- .../BuiltInFunctionNamespaceManager.java | 2 -- .../sql/InterpretedFunctionInvoker.java | 6 +++++ .../presto/type/CharParametricType.java | 10 ++++++- .../presto/type/DecimalParametricType.java | 27 ++++++++++++------- .../operator/scalar/FunctionAssertions.java | 7 ++--- 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java index 7f8d2c091e7f7..82370e87a439c 100644 --- a/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java +++ b/presto-main/src/main/java/com/facebook/presto/metadata/BuiltInFunctionNamespaceManager.java @@ -14,7 +14,6 @@ package com.facebook.presto.metadata; import com.facebook.presto.common.CatalogSchemaName; -import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockEncodingSerde; import com.facebook.presto.common.block.BlockSerdeUtil; @@ -783,7 +782,6 @@ public FunctionMetadata getFunctionMetadata(FunctionHandle functionHandle) } catch (UncheckedExecutionException e) { throwIfInstanceOf(e.getCause(), PrestoException.class); - throwIfInstanceOf(e.getCause(), InvalidFunctionArgumentException.class); throw e; } BuiltInFunction function = functionKey.getFunction(); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java index 7f6dae7f89b5f..212b3c7e8441a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java @@ -13,10 +13,12 @@ */ package com.facebook.presto.sql; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.function.SqlFunctionProperties; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionHandle; import com.google.common.base.Defaults; @@ -28,6 +30,7 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentType.VALUE_TYPE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.google.common.base.Throwables.throwIfUnchecked; import static java.lang.invoke.MethodHandleProxies.asInterfaceInstance; import static java.util.Objects.requireNonNull; @@ -122,6 +125,9 @@ private static RuntimeException propagate(Throwable throwable) if (throwable instanceof InterruptedException) { Thread.currentThread().interrupt(); } + if (throwable instanceof InvalidFunctionArgumentException) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, throwable.getMessage(), throwable); + } throwIfUnchecked(throwable); throw new RuntimeException(throwable); } diff --git a/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java index dd0b233703b02..b15e8628bac63 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/CharParametricType.java @@ -13,15 +13,18 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.type.ParametricType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.spi.PrestoException; import java.util.List; import static com.facebook.presto.common.type.CharType.createCharType; +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; public class CharParametricType implements ParametricType @@ -50,6 +53,11 @@ public Type createType(TypeManager typeManager, List parameters) throw new IllegalArgumentException("CHAR length must be a number"); } - return createCharType(parameter.getLongLiteral()); + try { + return createCharType(parameter.getLongLiteral()); + } + catch (InvalidFunctionArgumentException e) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, e.getMessage(), e); + } } } diff --git a/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java index 33187e3ba5ccd..c9ae1402ea951 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/DecimalParametricType.java @@ -13,15 +13,19 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.ParametricType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.common.type.TypeParameter; +import com.facebook.presto.spi.PrestoException; import java.util.List; +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; + public class DecimalParametricType implements ParametricType { @@ -36,15 +40,20 @@ public String getName() @Override public Type createType(TypeManager typeManager, List parameters) { - switch (parameters.size()) { - case 0: - return DecimalType.createDecimalType(); - case 1: - return DecimalType.createDecimalType(parameters.get(0).getLongLiteral().intValue()); - case 2: - return DecimalType.createDecimalType(parameters.get(0).getLongLiteral().intValue(), parameters.get(1).getLongLiteral().intValue()); - default: - throw new IllegalArgumentException("Expected 0, 1 or 2 parameters for DECIMAL type constructor."); + try { + switch (parameters.size()) { + case 0: + return DecimalType.createDecimalType(); + case 1: + return DecimalType.createDecimalType(parameters.get(0).getLongLiteral().intValue()); + case 2: + return DecimalType.createDecimalType(parameters.get(0).getLongLiteral().intValue(), parameters.get(1).getLongLiteral().intValue()); + default: + throw new IllegalArgumentException("Expected 0, 1 or 2 parameters for DECIMAL type constructor."); + } + } + catch (InvalidFunctionArgumentException e) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, e.getMessage(), e); } } } diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java index 2b9e1771b1ad7..df6c3fc5f26b7 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/FunctionAssertions.java @@ -14,7 +14,6 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; -import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.Page; import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; @@ -335,11 +334,9 @@ public void assertInvalidFunction(String projection, StandardErrorCode errorCode evaluateInvalid(projection); fail("Expected to throw a PrestoException with message matching " + messagePattern); } - catch (PrestoException | InvalidFunctionArgumentException e) { + catch (PrestoException e) { try { - if (e instanceof PrestoException) { - assertEquals(((PrestoException) e).getErrorCode(), errorCode.toErrorCode()); - } + assertEquals(e.getErrorCode(), errorCode.toErrorCode()); assertTrue(e.getMessage().equals(messagePattern) || e.getMessage().matches(messagePattern), format("Error message [%s] doesn't match [%s]", e.getMessage(), messagePattern)); } catch (Throwable failure) { From e7a2cb0ed589a852d743cf9780dd9fc39ef8d490 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Wed, 6 May 2020 11:05:35 -0700 Subject: [PATCH 073/129] Handle NotSupportedException from SingleMapBlock, TimeZoneKey --- .../presto/common/block/MapBlockBuilder.java | 4 +- .../operator/scalar/MapConstructor.java | 5 ++ .../operator/scalar/MapElementAtFunction.java | 48 +++++++++++++++++-- .../operator/scalar/MapGenericEquality.java | 13 ++++- .../operator/scalar/MapSubscriptOperator.java | 47 ++++++++++++++++-- .../operator/scalar/MapZipWithFunction.java | 12 ++++- .../sql/InterpretedFunctionInvoker.java | 6 +++ 7 files changed, 121 insertions(+), 14 deletions(-) diff --git a/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java index e5b3658155c1c..7fd86f9535275 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java +++ b/presto-common/src/main/java/com/facebook/presto/common/block/MapBlockBuilder.java @@ -224,7 +224,7 @@ public BlockBuilder closeEntry() * In other words, one can continue to use this BlockBuilder. */ public BlockBuilder closeEntryStrict() - throws DuplicateMapKeyException + throws DuplicateMapKeyException, NotSupportedException { if (!currentEntryOpened) { throw new IllegalStateException("Expected entry to be opened but was closed"); @@ -511,7 +511,7 @@ private static void buildHashTableStrict( int[] outputHashTable, int hashTableOffset, int hashTableSize) - throws DuplicateMapKeyException + throws DuplicateMapKeyException, NotSupportedException { for (int i = 0; i < keyCount; i++) { int hash = getHashPosition(keyBlock, keyOffset + i, keyBlockHashCode, hashTableSize); diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java index c27837ba427ff..8e6fb61178df7 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapConstructor.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -46,6 +47,7 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.comparableTypeParameter; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; @@ -172,6 +174,9 @@ public static Block createMap( catch (DuplicateMapKeyException e) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, e.getDetailedMessage(mapType.getKeyType(), properties), e); } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } finally { pageBuilder.declarePosition(); } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java index 537f57fd9275f..888598253e3b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapElementAtFunction.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SingleMapBlock; import com.facebook.presto.common.function.OperatorType; @@ -23,6 +24,7 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; @@ -37,6 +39,7 @@ import static com.facebook.presto.metadata.BuiltInFunctionNamespaceManager.DEFAULT_NAMESPACE; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; @@ -123,7 +126,14 @@ else if (keyType.getJavaType() == Slice.class) { public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type valueType, Block map, boolean key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { return null; } @@ -134,7 +144,14 @@ public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type valueType, Block map, long key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { return null; } @@ -145,7 +162,14 @@ public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type valueType, Block map, double key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { return null; } @@ -156,7 +180,14 @@ public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type valueType, Block map, Slice key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { return null; } @@ -167,7 +198,14 @@ public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type public static Object elementAt(MethodHandle keyEqualsMethod, Type keyType, Type valueType, Block map, Object key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact((Block) key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact((Block) key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { return null; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java index bc8606e031223..e6e2150c4f15b 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapGenericEquality.java @@ -13,11 +13,14 @@ * limitations under the License. */ +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SingleMapBlock; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import static com.facebook.presto.common.type.TypeUtils.readNativeValue; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.util.Failures.internalError; public final class MapGenericEquality @@ -47,7 +50,15 @@ public static Boolean genericEqual( for (int position = 0; position < leftSingleMapLeftBlock.getPositionCount(); position += 2) { Object key = readNativeValue(keyType, leftBlock, position); int leftPosition = position + 1; - int rightPosition = rightSingleMapBlock.seekKey(key); + + int rightPosition; + try { + rightPosition = rightSingleMapBlock.seekKey(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (rightPosition == -1) { return false; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java index 93b70ebbf3627..00516c6c68eae 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapSubscriptOperator.java @@ -14,6 +14,7 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.annotation.UsedByGeneratedCode; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SingleMapBlock; import com.facebook.presto.common.function.SqlFunctionProperties; @@ -40,6 +41,7 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.util.Reflection.methodHandle; import static java.lang.String.format; @@ -104,7 +106,14 @@ else if (keyType.getJavaType() == Slice.class) { public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFactory missingKeyExceptionFactory, Type valueType, SqlFunctionProperties properties, Block map, boolean key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { if (legacyMissingKey) { return null; @@ -118,7 +127,14 @@ public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFact public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFactory missingKeyExceptionFactory, Type valueType, SqlFunctionProperties properties, Block map, long key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { if (legacyMissingKey) { return null; @@ -132,7 +148,14 @@ public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFact public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFactory missingKeyExceptionFactory, Type valueType, SqlFunctionProperties properties, Block map, double key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { if (legacyMissingKey) { return null; @@ -146,7 +169,14 @@ public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFact public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFactory missingKeyExceptionFactory, Type valueType, SqlFunctionProperties properties, Block map, Slice key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact(key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { if (legacyMissingKey) { return null; @@ -160,7 +190,14 @@ public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFact public static Object subscript(boolean legacyMissingKey, MissingKeyExceptionFactory missingKeyExceptionFactory, Type valueType, SqlFunctionProperties properties, Block map, Object key) { SingleMapBlock mapBlock = (SingleMapBlock) map; - int valuePosition = mapBlock.seekKeyExact((Block) key); + int valuePosition; + try { + valuePosition = mapBlock.seekKeyExact((Block) key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (valuePosition == -1) { if (legacyMissingKey) { return null; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java index 0860bbbc1ef9a..1c34c571b0989 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/MapZipWithFunction.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -26,6 +27,7 @@ import com.facebook.presto.metadata.BoundVariables; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.metadata.SqlScalarFunction; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.FunctionKind; import com.facebook.presto.spi.function.Signature; import com.facebook.presto.spi.function.SqlFunctionVisibility; @@ -42,6 +44,7 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.functionTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty.valueTypeArgumentProperty; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.spi.function.Signature.typeVariable; import static com.facebook.presto.spi.function.SqlFunctionVisibility.PUBLIC; import static com.facebook.presto.util.Reflection.methodHandle; @@ -139,7 +142,14 @@ public static Block mapZipWith( Object key = readNativeValue(keyType, leftMapBlock, leftKeyPosition); Object leftValue = readNativeValue(leftValueType, leftMapBlock, leftKeyPosition + 1); - int rightValuePosition = rightMapBlock.seekKey(key); + int rightValuePosition; + try { + rightValuePosition = rightMapBlock.seekKey(key); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + Object rightValue = null; if (rightValuePosition != -1) { rightValue = readNativeValue(rightValueType, rightMapBlock, rightValuePosition); diff --git a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java index 212b3c7e8441a..4445c5c21dc69 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/InterpretedFunctionInvoker.java @@ -14,7 +14,9 @@ package com.facebook.presto.sql; import com.facebook.presto.common.InvalidFunctionArgumentException; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.function.SqlFunctionProperties; +import com.facebook.presto.common.type.TimeZoneNotSupportedException; import com.facebook.presto.metadata.FunctionManager; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation; import com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.ArgumentProperty; @@ -31,6 +33,7 @@ import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.RETURN_NULL_ON_NULL; import static com.facebook.presto.operator.scalar.BuiltInScalarFunctionImplementation.NullConvention.USE_NULL_FLAG; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Throwables.throwIfUnchecked; import static java.lang.invoke.MethodHandleProxies.asInterfaceInstance; import static java.util.Objects.requireNonNull; @@ -128,6 +131,9 @@ private static RuntimeException propagate(Throwable throwable) if (throwable instanceof InvalidFunctionArgumentException) { throw new PrestoException(INVALID_FUNCTION_ARGUMENT, throwable.getMessage(), throwable); } + if (throwable instanceof NotSupportedException || throwable instanceof TimeZoneNotSupportedException) { + throw new PrestoException(NOT_SUPPORTED, throwable.getMessage(), throwable); + } throwIfUnchecked(throwable); throw new RuntimeException(throwable); } From 9057aea31af2d9f01b439580da22b415793e6c5d Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Wed, 6 May 2020 11:43:13 -0700 Subject: [PATCH 074/129] Handle NotSupportedException from RowType, MapType, ArrayType checkElementNotNull() throws NotSupportedException for the above mentioned types. This is mainly invoked from equalTo() and compareTo() functions of these 3 types. So this commit has the code changes to add try-cath-throw around all the callers of compareTo() and equalTo() . --- .../presto/hive/util/MergingPageIterator.java | 12 +++++- .../presto/operator/RowComparator.java | 12 +++++- .../SimplePageWithPositionComparator.java | 13 ++++++- .../operator/SimplePagesHashStrategy.java | 21 +++++++++-- .../operator/SimplePagesIndexComparator.java | 12 +++++- .../histogram/GroupedTypedHistogram.java | 9 ++++- .../histogram/SingleTypedHistogram.java | 14 +++++-- .../aggregation/histogram/ValueStore.java | 37 +++++++++++-------- .../operator/index/TuplePageFilter.java | 12 +++++- .../scalar/ArraysOverlapFunction.java | 20 +++++++++- .../com/facebook/presto/type/TypeUtils.java | 9 ++++- .../scalar/AbstractTestFunctions.java | 7 +--- .../storage/organization/ShardCompactor.java | 12 +++++- 13 files changed, 152 insertions(+), 38 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java index 103eb67029cd7..bc04d077b6cae 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/MergingPageIterator.java @@ -13,11 +13,13 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ImmutableList; @@ -26,6 +28,7 @@ import java.util.List; import static com.facebook.presto.hive.util.SortBuffer.appendPositionTo; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.Iterators.concat; import static com.google.common.collect.Iterators.mergeSorted; @@ -131,7 +134,14 @@ public int compareTo(PagePosition other) Block block = page.getBlock(channel); Block otherBlock = other.page.getBlock(channel); - int result = order.compareBlockValue(type, block, position, otherBlock, other.position); + int result; + try { + result = order.compareBlockValue(type, block, position, otherBlock, other.position); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (result != 0) { return result; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java index 2d552f7072d19..8a28772fb97a2 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/RowComparator.java @@ -13,15 +13,18 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import java.util.Comparator; import java.util.List; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -52,7 +55,14 @@ public int compare(Page leftRow, Page rightRow) Block left = leftRow.getBlock(channel); Block right = rightRow.getBlock(channel); - int comparison = sortOrder.compareBlockValue(type, left, 0, right, 0); + int comparison; + try { + comparison = sortOrder.compareBlockValue(type, left, 0, right, 0); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (comparison != 0) { return comparison; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java index e0bbbace8e550..8c23be0b66a98 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePageWithPositionComparator.java @@ -13,14 +13,17 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import java.util.List; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static java.util.Objects.requireNonNull; public class SimplePageWithPositionComparator @@ -46,7 +49,15 @@ public int compareTo(Page left, int leftPosition, Page right, int rightPosition) Block rightBlock = right.getBlock(sortChannel); SortOrder sortOrder = sortOrders.get(i); - int compare = sortOrder.compareBlockValue(types.get(sortChannel), leftBlock, leftPosition, rightBlock, rightPosition); + + int compare; + try { + compare = sortOrder.compareBlockValue(types.get(sortChannel), leftBlock, leftPosition, rightBlock, rightPosition); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (compare != 0) { return compare; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java index b0e8f01ce8c72..ea28bb3bf89fc 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesHashStrategy.java @@ -13,11 +13,13 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.PageBuilder; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; import com.facebook.presto.metadata.FunctionManager; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.type.TypeUtils; import com.google.common.collect.ImmutableList; import org.openjdk.jol.info.ClassLayout; @@ -29,6 +31,7 @@ import static com.facebook.presto.common.function.OperatorType.IS_DISTINCT_FROM; import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.facebook.presto.sql.analyzer.TypeSignatureProvider.fromTypes; import static com.facebook.presto.util.Failures.internalError; import static com.google.common.base.Preconditions.checkArgument; @@ -173,8 +176,13 @@ public boolean positionEqualsRowIgnoreNulls(int leftBlockIndex, int leftPosition Type type = types.get(hashChannel); Block leftBlock = channels.get(hashChannel).get(leftBlockIndex); Block rightBlock = rightPage.getBlock(i); - if (!type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition)) { - return false; + try { + if (!type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition)) { + return false; + } + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); } } return true; @@ -241,8 +249,13 @@ public boolean positionEqualsPositionIgnoreNulls(int leftBlockIndex, int leftPos List channel = channels.get(hashChannel); Block leftBlock = channel.get(leftBlockIndex); Block rightBlock = channel.get(rightBlockIndex); - if (!type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition)) { - return false; + try { + if (!type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition)) { + return false; + } + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); } } return true; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java index df724f85e8a4c..1f33a33215077 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/SimplePagesIndexComparator.java @@ -13,15 +13,18 @@ */ package com.facebook.presto.operator; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import java.util.List; import static com.facebook.presto.operator.SyntheticAddress.decodePosition; import static com.facebook.presto.operator.SyntheticAddress.decodeSliceIndex; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static java.util.Objects.requireNonNull; public class SimplePagesIndexComparator @@ -55,7 +58,14 @@ public int compareTo(PagesIndex pagesIndex, int leftPosition, int rightPosition) Block rightBlock = pagesIndex.getChannel(sortChannel).get(rightBlockIndex); SortOrder sortOrder = sortOrders.get(i); - int compare = sortOrder.compareBlockValue(sortTypes.get(i), leftBlock, leftBlockPosition, rightBlock, rightBlockPosition); + int compare; + try { + compare = sortOrder.compareBlockValue(sortTypes.get(i), leftBlock, leftBlockPosition, rightBlock, rightBlockPosition); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (compare != 0) { return compare; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java index a573ebe490a73..5e20758e325b5 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/GroupedTypedHistogram.java @@ -15,6 +15,7 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; @@ -27,6 +28,7 @@ import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextBucketId; import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextProbeLinear; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static it.unimi.dsi.fastutil.HashCommon.arraySize; @@ -500,7 +502,12 @@ private boolean groupAndValueMatches(long groupId, Block block, int position, in { long existingGroupId = groupIds.get(nodePointer); - return existingGroupId == groupId && type.equalTo(block, position, values, valuePosition); + try { + return existingGroupId == groupId && type.equalTo(block, position, values, valuePosition); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } private ValueNode createValueNode(int nodePointer) diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java index 5dcdfc052696c..55901f995a9ca 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/SingleTypedHistogram.java @@ -15,6 +15,7 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; @@ -24,6 +25,7 @@ import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static it.unimi.dsi.fastutil.HashCommon.arraySize; import static it.unimi.dsi.fastutil.HashCommon.murmurHash3; @@ -133,10 +135,16 @@ public void add(int position, Block block, long count) break; } - if (type.equalTo(block, position, values, hashPositions.get(hashPosition))) { - counts.add(hashPositions.get(hashPosition), count); - return; + try { + if (type.equalTo(block, position, values, hashPositions.get(hashPosition))) { + counts.add(hashPositions.get(hashPosition), count); + return; + } } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + // increment position and mask to handle wrap around hashPosition = (hashPosition + 1) & mask; } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java index 4b89ba6f201ca..f6c282fe34229 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/aggregation/histogram/ValueStore.java @@ -15,6 +15,7 @@ import com.facebook.presto.array.IntBigArray; import com.facebook.presto.array.LongBigArray; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; import com.facebook.presto.common.type.Type; @@ -27,6 +28,7 @@ import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextBucketId; import static com.facebook.presto.operator.aggregation.histogram.HashUtil.nextProbeLinear; import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INSUFFICIENT_RESOURCES; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkState; /** @@ -84,22 +86,27 @@ public int addAndGetPosition(Type type, Block block, int position, long valueHas checkState(probeCount < bucketCount, "could not find match for value nor empty slot in %s buckets", bucketCount); valuePointer = buckets.get(bucketId); - if (valuePointer == EMPTY_BUCKET) { - valuePointer = values.getPositionCount(); - valueHashes.set(valuePointer, (int) valueHash); - type.appendTo(block, position, values); - buckets.set(bucketId, valuePointer); - - return valuePointer; - } - else if (type.equalTo(block, position, values, valuePointer)) { - // value at position - return valuePointer; + try { + if (valuePointer == EMPTY_BUCKET) { + valuePointer = values.getPositionCount(); + valueHashes.set(valuePointer, (int) valueHash); + type.appendTo(block, position, values); + buckets.set(bucketId, valuePointer); + + return valuePointer; + } + else if (type.equalTo(block, position, values, valuePointer)) { + // value at position + return valuePointer; + } + else { + int probe = nextProbe(probeCount); + bucketId = nextBucketId(originalBucketId, mask, probe); + probeCount++; + } } - else { - int probe = nextProbe(probeCount); - bucketId = nextBucketId(originalBucketId, mask, probe); - probeCount++; + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); } } } diff --git a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java index bc32edf35490c..85e6d416b7bab 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/index/TuplePageFilter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.operator.index; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.function.SqlFunctionProperties; @@ -20,10 +21,12 @@ import com.facebook.presto.operator.project.InputChannels; import com.facebook.presto.operator.project.PageFilter; import com.facebook.presto.operator.project.SelectedPositions; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import java.util.List; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -85,8 +88,13 @@ private boolean matches(Page page, int position) Type type = types.get(channel); Block outputBlock = page.getBlock(channel); Block singleTupleBlock = tuplePage.getBlock(channel); - if (!type.equalTo(singleTupleBlock, 0, outputBlock, position)) { - return false; + try { + if (!type.equalTo(singleTupleBlock, 0, outputBlock, position)) { + return false; + } + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); } } return true; diff --git a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java index 48e205384aadd..8ba84b1e37072 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/scalar/ArraysOverlapFunction.java @@ -13,10 +13,12 @@ */ package com.facebook.presto.operator.scalar; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.AbstractType; import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.common.type.Type; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.OperatorDependency; import com.facebook.presto.spi.function.ScalarFunction; @@ -33,6 +35,7 @@ import static com.facebook.presto.common.function.OperatorType.LESS_THAN; import static com.facebook.presto.common.type.BigintType.BIGINT; import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; @ScalarFunction("arrays_overlap") @Description("Returns true if arrays have common elements") @@ -63,7 +66,12 @@ public int compare(int left, int right) if (block.isNull(right)) { return -1; } - return type.compareTo(block, left, block, right); + try { + return type.compareTo(block, left, block, right); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } }; } @@ -128,7 +136,15 @@ public Boolean arraysOverlap( // Nulls are in the end of the array. Non-null elements do not overlap. return null; } - int compareValue = type.compareTo(leftArray, leftPositions[leftCurrentPosition], rightArray, rightPositions[rightCurrentPosition]); + + int compareValue; + try { + compareValue = type.compareTo(leftArray, leftPositions[leftCurrentPosition], rightArray, rightPositions[rightCurrentPosition]); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (compareValue > 0) { rightCurrentPosition++; } diff --git a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java index 57a821ab624e6..57e899d3c1341 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java +++ b/presto-main/src/main/java/com/facebook/presto/type/TypeUtils.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -99,7 +100,13 @@ public static boolean positionEqualsPosition(Type type, Block leftBlock, int lef if (leftIsNull || rightIsNull) { return leftIsNull && rightIsNull; } - return type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition); + + try { + return type.equalTo(leftBlock, leftPosition, rightBlock, rightPosition); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } public static Type resolveType(TypeSignature typeName, TypeManager typeManager) diff --git a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java index 514e4389d5b8e..5e1d760af84f4 100644 --- a/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java +++ b/presto-main/src/test/java/com/facebook/presto/operator/scalar/AbstractTestFunctions.java @@ -14,7 +14,6 @@ package com.facebook.presto.operator.scalar; import com.facebook.presto.Session; -import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.function.OperatorType; import com.facebook.presto.common.type.DecimalParseResult; import com.facebook.presto.common.type.Decimals; @@ -167,11 +166,9 @@ protected void assertNotSupported(String projection, String message) functionAssertions.executeProjectionWithFullEngine(projection); fail("expected exception"); } - catch (PrestoException | NotSupportedException e) { + catch (PrestoException e) { try { - if (e instanceof PrestoException) { - assertEquals(((PrestoException) e).getErrorCode(), NOT_SUPPORTED.toErrorCode()); - } + assertEquals(e.getErrorCode(), NOT_SUPPORTED.toErrorCode()); assertEquals(e.getMessage(), message); } catch (Throwable failure) { diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java index 7fea1985a099d..7b4cb5776f4b7 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/organization/ShardCompactor.java @@ -15,6 +15,7 @@ import com.facebook.airlift.stats.CounterStat; import com.facebook.airlift.stats.DistributionStat; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.SortOrder; @@ -27,6 +28,7 @@ import com.facebook.presto.raptor.storage.StorageManager; import com.facebook.presto.raptor.storage.StoragePageSink; import com.facebook.presto.spi.ConnectorPageSource; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import org.weakref.jmx.Managed; import org.weakref.jmx.Nested; @@ -47,6 +49,7 @@ import static com.facebook.airlift.concurrent.MoreFutures.getFutureValue; import static com.facebook.presto.hive.HiveFileContext.DEFAULT_HIVE_FILE_CONTEXT; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.units.Duration.nanosSince; import static java.util.Objects.requireNonNull; @@ -295,7 +298,14 @@ public int compareTo(SortedPageSource other) Block rightBlock = other.currentPage.getBlock(channel); int rightBlockPosition = other.currentPosition; - int compare = sortOrders.get(i).compareBlockValue(type, leftBlock, leftBlockPosition, rightBlock, rightBlockPosition); + int compare; + try { + compare = sortOrders.get(i).compareBlockValue(type, leftBlock, leftBlockPosition, rightBlock, rightBlockPosition); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + if (compare != 0) { return compare; } From b70fcf3e077916b3c975cb4af0f465ee01a1796b Mon Sep 17 00:00:00 2001 From: Leiqing Cai Date: Mon, 4 May 2020 13:09:30 -0700 Subject: [PATCH 075/129] Add release notes collection script --- src/release/release-notes.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 src/release/release-notes.sh diff --git a/src/release/release-notes.sh b/src/release/release-notes.sh new file mode 100755 index 0000000000000..cab4eba5cc7e5 --- /dev/null +++ b/src/release/release-notes.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [[ "$#" -ne 2 ]]; then + echo "Usage: $0 " + exit 1 +fi + +curl -L -o /tmp/presto_release "https://oss.sonatype.org/service/local/artifact/maven/redirect?g=com.facebook.presto&a=presto-release-tools&v=RELEASE&r=releases&c=executable&e=jar" +chmod 755 /tmp/presto_release +/tmp/presto_release release-notes --github-user $1 --github-access-token $2 From e4fbf228981ab834f065a8d70ea6a98b0dffae1c Mon Sep 17 00:00:00 2001 From: Sujay Jain Date: Tue, 28 Apr 2020 16:06:58 -0700 Subject: [PATCH 076/129] FastutilSetHelper ObjectStrategy equals result can be null. --- .../presto/util/FastutilSetHelper.java | 2 -- .../presto/tests/AbstractTestQueries.java | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java index 6285e4645fb67..50ce05b8191f4 100644 --- a/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java +++ b/presto-main/src/main/java/com/facebook/presto/util/FastutilSetHelper.java @@ -204,8 +204,6 @@ public boolean equals(Object a, Object b) { try { Boolean result = (Boolean) equalsHandle.invokeExact(a, b); - // FastutilHashSet is not intended be used for indeterminate values lookup - verify(result != null, "result is null"); return TRUE.equals(result); } catch (Throwable t) { diff --git a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java index 09ffe618920b5..999f96536a51d 100644 --- a/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java +++ b/presto-tests/src/main/java/com/facebook/presto/tests/AbstractTestQueries.java @@ -8316,6 +8316,26 @@ public void testLargeBytecode() assertQueryFails(stringBuilder.toString(), "Query results in large bytecode exceeding the limits imposed by JVM|Compiler failed"); } + @Test + public void testInComplexTypes() + { + //test cases to trigger the SET_CONTAINS path of InCodeGenerator.java with complex types + StringBuilder query = new StringBuilder("select * from (values('a'), (null)) as t (name) where ROW('1', name) IN ( "); + for (int i = 2; i < 32; i++) { + query.append(String.format("ROW('1','%s'), ", i)); + } + query.append("ROW('1', name), ROW('2',name), ROW('3',name))"); + assertQuerySucceeds(query.toString()); + + query = new StringBuilder("select ROW(null_value) IN ( "); + for (int i = 0; i < 32; i++) { + query.append(String.format("ROW(%s), ", i)); + } + query.append("ROW(32)) "); + query.append("FROM (values(null)) as t (null_value)"); + assertQuery(query.toString(), "SELECT NULL"); + } + protected Session noJoinReordering() { return Session.builder(getSession()) From 007891b015623d378fd56b05e11917a6120b5986 Mon Sep 17 00:00:00 2001 From: Bhavani Hari Date: Wed, 6 May 2020 23:09:44 -0700 Subject: [PATCH 077/129] Do not prune partitions with recoverable failures in filter evaluation --- .../presto/hive/rule/HiveFilterPushdown.java | 1 + .../hive/TestHiveIntegrationSmokeTest.java | 4 ++++ .../hive/TestHivePushdownFilterQueries.java | 16 +++++++++------- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java index 7bf4f999dad28..bdc95484736b9 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/rule/HiveFilterPushdown.java @@ -457,6 +457,7 @@ private boolean isCandidate(Map bindings) } catch (PrestoException e) { propagateIfUnhandled(e); + return true; } // If any conjuncts evaluate to FALSE or null, then the whole predicate will never be true and so the partition should be pruned diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index 8d103f385f803..dc512059b2a8a 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -4633,6 +4633,10 @@ public void testPrunePartitionFailure() "SELECT * FROM test_prune_failure\n" + "WHERE x < 0 AND cast(p AS int) > 0"); + assertQueryFails("" + + "SELECT * FROM test_prune_failure\n" + + "WHERE x > 0 AND cast(p AS int) > 0", "Cannot cast 'abc' to INT"); + assertUpdate("DROP TABLE test_prune_failure"); } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java index c849f0e415094..256ae23e65968 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePushdownFilterQueries.java @@ -791,27 +791,29 @@ public void testPushdownComposition() @Test public void testPartitionColumns() { - assertUpdate("CREATE TABLE test_partition_columns WITH (partitioned_by = ARRAY['p', 'q']) AS\n" + - "SELECT * FROM (VALUES (1, 'abc', 'cba'), (2, 'abc', 'def')) as t(x, p, q)", 2); + assertUpdate("CREATE TABLE test_partition_columns WITH (partitioned_by = ARRAY['p', 'q', 'ds']) AS\n" + + "SELECT * FROM (VALUES (1, 'abc', 'cba', '2020-01-01'), (2, 'abc', 'def', '2020-01-01')) as t(x, p, q, ds)", 2); - assertQuery("SELECT * FROM test_partition_columns", "SELECT 1, 'abc', 'cba' UNION ALL SELECT 2, 'abc', 'def'"); + assertQuery("SELECT * FROM test_partition_columns", "SELECT 1, 'abc', 'cba', '2020-01-01' UNION ALL SELECT 2, 'abc', 'def', '2020-01-01'"); assertQuery("SELECT x FROM test_partition_columns", "SELECT 1 UNION ALL SELECT 2"); - assertQuery("SELECT * FROM test_partition_columns WHERE p = 'abc'", "SELECT 1, 'abc', 'cba' UNION ALL SELECT 2, 'abc', 'def'"); + assertQuery("SELECT * FROM test_partition_columns WHERE p = 'abc'", "SELECT 1, 'abc', 'cba', '2020-01-01' UNION ALL SELECT 2, 'abc', 'def', '2020-01-01'"); - assertQuery("SELECT * FROM test_partition_columns WHERE p LIKE 'a%'", "SELECT 1, 'abc', 'cba' UNION ALL SELECT 2, 'abc', 'def'"); + assertQuery("SELECT * FROM test_partition_columns WHERE p LIKE 'a%'", "SELECT 1, 'abc', 'cba', '2020-01-01' UNION ALL SELECT 2, 'abc', 'def', '2020-01-01'"); - assertQuery("SELECT * FROM test_partition_columns WHERE substr(p, x, 1) = 'a' and substr(q, 1, 1) = 'c'", "SELECT 1, 'abc', 'cba'"); + assertQuery("SELECT * FROM test_partition_columns WHERE substr(p, x, 1) = 'a' and substr(q, 1, 1) = 'c'", "SELECT 1, 'abc', 'cba', '2020-01-01'"); assertQueryReturnsEmptyResult("SELECT * FROM test_partition_columns WHERE p = 'xxx'"); assertQueryReturnsEmptyResult("SELECT * FROM test_partition_columns WHERE p = 'abc' and p='def'"); - assertUpdate("INSERT into test_partition_columns values (3, 'abc', NULL)", 1); + assertUpdate("INSERT into test_partition_columns values (3, 'abc', NULL, '2020-01-01')", 1); assertQuerySucceeds(getSession(), "select * from test_partition_columns"); + assertQueryFails("SELECT * FROM test_partition_columns WHERE DATE_DIFF( 'day', PARSE_DATETIME( '2020-01-08', 'YYYY-MM-dd' ), PARSE_DATETIME( ds, 'yyyy-MM-dd HH:mm:ss.SSS' ) ) = 7", "Invalid format: \"2020-01-01\" is too short"); + assertUpdate("DROP TABLE test_partition_columns"); } From 04daeb45f6d2ba2abd9e3cf59a8a755256b4da1a Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Thu, 7 May 2020 18:56:41 -0700 Subject: [PATCH 078/129] Drop presto-orc usage of INVALID_FUNCTION_ARGUMENT PrestoException --- .../presto/hive/orc/OrcSelectivePageSource.java | 6 ++++++ .../presto/orc/reader/ListSelectiveStreamReader.java | 5 ++--- .../facebook/presto/orc/TestSelectiveOrcReader.java | 10 +++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java index b934ef861fdc1..916d0855a676d 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/orc/OrcSelectivePageSource.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.orc; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.Page; import com.facebook.presto.hive.FileFormatDataSourceStats; import com.facebook.presto.orc.OrcAggregatedMemoryContext; @@ -27,6 +28,7 @@ import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.google.common.base.MoreObjects.toStringHelper; import static java.lang.String.format; import static java.util.Objects.requireNonNull; @@ -87,6 +89,10 @@ public Page getNextPage() } return page; } + catch (InvalidFunctionArgumentException e) { + closeWithSuppression(e); + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, e.getMessage(), e); + } catch (PrestoException e) { closeWithSuppression(e); throw e; diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java index 07a7d2126dd06..cdd5003518e45 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/ListSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.block.ArrayBlock; import com.facebook.presto.common.block.Block; @@ -30,7 +31,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; @@ -53,7 +53,6 @@ import static com.facebook.presto.orc.reader.SelectiveStreamReaders.createNestedStreamReader; import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; @@ -616,7 +615,7 @@ public void throwAnyError(int[] positions, int positionCount) assert outputPositions[i] == nextPosition; if (indexOutOfBounds[i]) { - throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Array subscript out of bounds"); + throw new InvalidFunctionArgumentException("Array subscript out of bounds"); } positionIndex++; diff --git a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java index 74aaa330aabe5..d26500c7c01d8 100644 --- a/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java +++ b/presto-orc/src/test/java/com/facebook/presto/orc/TestSelectiveOrcReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.InvalidFunctionArgumentException; import com.facebook.presto.common.Subfield; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; @@ -29,7 +30,6 @@ import com.facebook.presto.orc.TupleDomainFilter.BytesValues; import com.facebook.presto.orc.TupleDomainFilter.DoubleRange; import com.facebook.presto.orc.TupleDomainFilter.FloatRange; -import com.facebook.presto.spi.PrestoException; import com.google.common.base.Strings; import com.google.common.collect.AbstractIterator; import com.google.common.collect.ContiguousSet; @@ -530,7 +530,7 @@ public void testArrayIndexOutOfBounds() ImmutableList.of(ImmutableMap.of(new Subfield("c[2]"), IS_NULL))); fail("Expected 'Array subscript out of bounds' exception"); } - catch (PrestoException e) { + catch (InvalidFunctionArgumentException e) { assertTrue(e.getMessage().contains("Array subscript out of bounds")); } @@ -541,7 +541,7 @@ public void testArrayIndexOutOfBounds() ImmutableList.of(ImmutableMap.of(new Subfield("c[2][3]"), IS_NULL))); fail("Expected 'Array subscript out of bounds' exception"); } - catch (PrestoException e) { + catch (InvalidFunctionArgumentException e) { assertTrue(e.getMessage().contains("Array subscript out of bounds")); } @@ -552,7 +552,7 @@ public void testArrayIndexOutOfBounds() ImmutableList.of(ImmutableMap.of(new Subfield("c[2]"), IS_NULL))); fail("Expected 'Array subscript out of bounds' exception"); } - catch (PrestoException e) { + catch (InvalidFunctionArgumentException e) { assertTrue(e.getMessage().contains("Array subscript out of bounds")); } @@ -563,7 +563,7 @@ public void testArrayIndexOutOfBounds() ImmutableList.of(ImmutableMap.of(new Subfield("c[2][3]"), IS_NULL))); fail("Expected 'Array subscript out of bounds' exception"); } - catch (PrestoException e) { + catch (InvalidFunctionArgumentException e) { assertTrue(e.getMessage().contains("Array subscript out of bounds")); } } From 20b4db7136187d959ee12ea233412b6391ef6369 Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Thu, 7 May 2020 19:05:46 -0700 Subject: [PATCH 079/129] Drop presto-orc usage of GENERIC_INTERNAL_ERROR PrestoException --- .../presto/orc/reader/SliceDirectBatchStreamReader.java | 6 ++---- .../presto/orc/reader/SliceDirectSelectiveStreamReader.java | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java index c6a6ad097a64e..19fd04cee24f6 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectBatchStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.GenericInternalException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.RunLengthEncodedBlock; import com.facebook.presto.common.block.VariableWidthBlock; @@ -24,7 +25,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.PrestoException; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import io.airlift.units.DataSize; @@ -43,7 +43,6 @@ import static com.facebook.presto.orc.reader.ReaderUtils.unpackLengthNulls; import static com.facebook.presto.orc.reader.SliceBatchStreamReader.computeTruncatedLength; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Verify.verify; @@ -177,8 +176,7 @@ public Block readBlock() return new VariableWidthBlock(currentBatchSize, EMPTY_SLICE, offsetVector, Optional.ofNullable(isNullVector)); } if (totalLength > ONE_GIGABYTE) { - throw new PrestoException(GENERIC_INTERNAL_ERROR, - format("Values in column \"%s\" are too large to process for Presto. %s column values are larger than 1GB [%s]", streamDescriptor.getFieldName(), currentBatchSize, streamDescriptor.getOrcDataSourceId())); + throw new GenericInternalException(format("Values in column \"%s\" are too large to process for Presto. %s column values are larger than 1GB [%s]", streamDescriptor.getFieldName(), currentBatchSize, streamDescriptor.getOrcDataSourceId())); } if (dataStream == null) { throw new OrcCorruptionException(streamDescriptor.getOrcDataSourceId(), "Value is not null but data stream is missing"); diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java index 55e1e43c45146..20f28979829ed 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/reader/SliceDirectSelectiveStreamReader.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc.reader; +import com.facebook.presto.common.GenericInternalException; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockLease; import com.facebook.presto.common.block.ClosingBlockLease; @@ -29,7 +30,6 @@ import com.facebook.presto.orc.stream.InputStreamSource; import com.facebook.presto.orc.stream.InputStreamSources; import com.facebook.presto.orc.stream.LongInputStream; -import com.facebook.presto.spi.PrestoException; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import io.airlift.units.DataSize; @@ -46,7 +46,6 @@ import static com.facebook.presto.orc.reader.SelectiveStreamReaders.initializeOutputPositions; import static com.facebook.presto.orc.reader.SliceSelectiveStreamReader.computeTruncatedLength; import static com.facebook.presto.orc.stream.MissingInputStreamSource.missingStreamSource; -import static com.facebook.presto.spi.StandardErrorCode.GENERIC_INTERNAL_ERROR; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static io.airlift.slice.SizeOf.sizeOf; @@ -525,8 +524,7 @@ else if (isNotNull) { // TODO Do not throw if outputRequired == false if (totalLength > ONE_GIGABYTE) { - throw new PrestoException( - GENERIC_INTERNAL_ERROR, + throw new GenericInternalException( format("Values in column \"%s\" are too large to process for Presto. %s column values are larger than 1GB [%s]", streamDescriptor.getFieldName(), positionCount, streamDescriptor.getOrcDataSourceId())); From cc312861c9df16c95a693949f710712c36ed606b Mon Sep 17 00:00:00 2001 From: Nikhil Collooru Date: Thu, 7 May 2020 23:57:42 -0700 Subject: [PATCH 080/129] Drop presto-orc usage of NOT_SUPPORTED PrestoException --- .../facebook/presto/hive/OrcFileWriter.java | 32 ++++++++++------ .../presto/hive/util/TempFileWriter.java | 38 +++++++++++-------- presto-orc/pom.xml | 11 +++--- .../presto/orc/OrcWriteValidation.java | 5 +-- .../ExceptionWrappingMetadataReader.java | 3 -- .../facebook/presto/orc/metadata/OrcType.java | 5 +-- .../raptor/storage/OrcFileRewriter.java | 6 +++ .../presto/raptor/storage/OrcFileWriter.java | 31 +++++++++------ 8 files changed, 78 insertions(+), 53 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java index 54955a45378b0..ebb85deb86770 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/OrcFileWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.BlockBuilder; @@ -44,6 +45,7 @@ import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITER_CLOSE_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITER_DATA_ERROR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_WRITE_VALIDATION_FAILED; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.MoreObjects.toStringHelper; import static java.util.Objects.requireNonNull; @@ -78,18 +80,24 @@ public OrcFileWriter( { requireNonNull(dataSink, "dataSink is null"); - orcWriter = new OrcWriter( - dataSink, - columnNames, - fileColumnTypes, - orcEncoding, - compression, - options, - metadata, - hiveStorageTimeZone, - validationInputFactory.isPresent(), - validationMode, - stats); + try { + orcWriter = new OrcWriter( + dataSink, + columnNames, + fileColumnTypes, + orcEncoding, + compression, + options, + metadata, + hiveStorageTimeZone, + validationInputFactory.isPresent(), + validationMode, + stats); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } + this.rollbackAction = requireNonNull(rollbackAction, "rollbackAction is null"); this.fileInputColumnIndexes = requireNonNull(fileInputColumnIndexes, "outputColumnInputIndexes is null"); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java index 2fe643be2a595..2ea20dbdfedd5 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/TempFileWriter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.hive.util; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.orc.DataSink; @@ -20,6 +21,7 @@ import com.facebook.presto.orc.OrcWriter; import com.facebook.presto.orc.OrcWriterOptions; import com.facebook.presto.orc.OrcWriterStats; +import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableMap; import io.airlift.units.DataSize; @@ -31,6 +33,7 @@ import static com.facebook.presto.orc.OrcEncoding.ORC; import static com.facebook.presto.orc.metadata.CompressionKind.LZ4; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.units.DataSize.Unit.BYTE; import static io.airlift.units.DataSize.Unit.MEGABYTE; @@ -74,20 +77,25 @@ private static OrcWriter createOrcFileWriter(DataSink sink, List types) .mapToObj(String::valueOf) .collect(toImmutableList()); - return new OrcWriter( - sink, - columnNames, - types, - ORC, - LZ4, - new OrcWriterOptions() - .withMaxStringStatisticsLimit(new DataSize(0, BYTE)) - .withStripeMinSize(new DataSize(64, MEGABYTE)) - .withDictionaryMaxMemory(new DataSize(1, MEGABYTE)), - ImmutableMap.of(), - UTC, - false, - OrcWriteValidationMode.BOTH, - new OrcWriterStats()); + try { + return new OrcWriter( + sink, + columnNames, + types, + ORC, + LZ4, + new OrcWriterOptions() + .withMaxStringStatisticsLimit(new DataSize(0, BYTE)) + .withStripeMinSize(new DataSize(64, MEGABYTE)) + .withDictionaryMaxMemory(new DataSize(1, MEGABYTE)), + ImmutableMap.of(), + UTC, + false, + OrcWriteValidationMode.BOTH, + new OrcWriterStats()); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } } diff --git a/presto-orc/pom.xml b/presto-orc/pom.xml index 68d493b0525e9..7bf260b572045 100644 --- a/presto-orc/pom.xml +++ b/presto-orc/pom.xml @@ -77,11 +77,6 @@ guava - - com.facebook.presto - presto-spi - - com.facebook.presto presto-common @@ -116,6 +111,12 @@ + + com.facebook.presto + presto-spi + test + + com.facebook.presto presto-memory-context diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java index d81f238d785c6..fcf1fe68b748f 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/OrcWriteValidation.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.orc; +import com.facebook.presto.common.GenericInternalException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.block.ColumnarMap; @@ -41,7 +42,6 @@ import com.facebook.presto.orc.metadata.statistics.StringStatistics; import com.facebook.presto.orc.metadata.statistics.StringStatisticsBuilder; import com.facebook.presto.orc.metadata.statistics.StripeStatistics; -import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSortedMap; import com.google.common.collect.Iterables; @@ -83,7 +83,6 @@ import static com.facebook.presto.orc.metadata.DwrfMetadataWriter.STATIC_METADATA; import static com.facebook.presto.orc.metadata.OrcMetadataReader.maxStringTruncateToValidRange; import static com.facebook.presto.orc.metadata.OrcMetadataReader.minStringTruncateToValidRange; -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; @@ -727,7 +726,7 @@ else if (type.getTypeSignature().getBase().equals(ROW)) { .collect(toImmutableList()); } else { - throw new PrestoException(NOT_SUPPORTED, format("Unsupported Hive type: %s", type)); + throw new GenericInternalException(format("Unsupported Hive type: %s", type)); } } diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/ExceptionWrappingMetadataReader.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/ExceptionWrappingMetadataReader.java index a0846636ea262..c559b915803d7 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/ExceptionWrappingMetadataReader.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/ExceptionWrappingMetadataReader.java @@ -17,14 +17,12 @@ import com.facebook.presto.orc.OrcDataSourceId; import com.facebook.presto.orc.metadata.PostScript.HiveWriterVersion; import com.facebook.presto.orc.metadata.statistics.HiveBloomFilter; -import com.facebook.presto.spi.PrestoException; import java.io.IOException; import java.io.InputStream; import java.util.List; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Throwables.propagateIfPossible; import static java.util.Objects.requireNonNull; public class ExceptionWrappingMetadataReader @@ -114,7 +112,6 @@ public List readBloomFilterIndexes(InputStream inputStream) private OrcCorruptionException propagate(Throwable throwable, String message) { - propagateIfPossible(throwable, PrestoException.class); return new OrcCorruptionException(throwable, orcDataSourceId, message); } } diff --git a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java index 0c4dcb8dd5a4f..097cb2d3ebb42 100644 --- a/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java +++ b/presto-orc/src/main/java/com/facebook/presto/orc/metadata/OrcType.java @@ -13,12 +13,12 @@ */ package com.facebook.presto.orc.metadata; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.type.CharType; import com.facebook.presto.common.type.DecimalType; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeSignatureParameter; import com.facebook.presto.common.type.VarcharType; -import com.facebook.presto.spi.PrestoException; import com.google.common.collect.ImmutableList; import java.util.ArrayList; @@ -38,7 +38,6 @@ import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; import static com.facebook.presto.common.type.TinyintType.TINYINT; import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; import static java.lang.String.format; @@ -234,7 +233,7 @@ private static List toOrcType(int nextFieldTypeIndex, Type type) return createOrcRowType(nextFieldTypeIndex, fieldNames, fieldTypes); } - throw new PrestoException(NOT_SUPPORTED, format("Unsupported Hive type: %s", type)); + throw new NotSupportedException(format("Unsupported Hive type: %s", type)); } private static List createOrcArrayType(int nextFieldTypeIndex, Type itemType) diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java index c64bc86337727..67d7e01d4487b 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileRewriter.java @@ -15,6 +15,7 @@ import com.facebook.airlift.json.JsonCodec; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.block.Block; import com.facebook.presto.common.type.Type; @@ -31,6 +32,7 @@ import com.facebook.presto.orc.metadata.CompressionKind; import com.facebook.presto.raptor.RaptorOrcAggregatedMemoryContext; import com.facebook.presto.raptor.util.Closer; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.classloader.ThreadContextClassLoader; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -55,6 +57,7 @@ import static com.facebook.presto.raptor.storage.OrcStorageManager.DEFAULT_STORAGE_TIMEZONE; import static com.facebook.presto.raptor.storage.OrcStorageManager.HUGE_MAX_READ_BLOCK_SIZE; import static com.facebook.presto.raptor.util.Closer.closer; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.units.Duration.nanosSince; import static java.lang.Math.toIntExact; @@ -195,6 +198,9 @@ public OrcFileInfo rewrite(FileSystem fileSystem, Map allColumnTyp return fileInfo; } } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } private static OrcFileInfo rewrite( diff --git a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java index 6195f9dbac171..7085cb20877f3 100644 --- a/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java +++ b/presto-raptor/src/main/java/com/facebook/presto/raptor/storage/OrcFileWriter.java @@ -14,6 +14,7 @@ package com.facebook.presto.raptor.storage; import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.common.NotSupportedException; import com.facebook.presto.common.Page; import com.facebook.presto.common.type.Type; import com.facebook.presto.common.type.TypeManager; @@ -39,6 +40,7 @@ import static com.facebook.presto.orc.OrcWriteValidation.OrcWriteValidationMode.HASHED; import static com.facebook.presto.raptor.RaptorErrorCode.RAPTOR_WRITER_DATA_ERROR; import static com.facebook.presto.raptor.storage.OrcStorageManager.DEFAULT_STORAGE_TIMEZONE; +import static com.facebook.presto.spi.StandardErrorCode.NOT_SUPPORTED; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static java.util.Objects.requireNonNull; @@ -89,18 +91,23 @@ public OrcFileWriter(List columnIds, List columnTypes, DataSink targ userMetadata = ImmutableMap.of(OrcFileMetadata.KEY, METADATA_CODEC.toJson(new OrcFileMetadata(columnTypesMap.build()))); } - orcWriter = new OrcWriter( - target, - columnNames, - storageTypes, - ORC, - requireNonNull(compression, "compression is null"), - DEFAULT_OPTION, - userMetadata, - DEFAULT_STORAGE_TIMEZONE, - validate, - HASHED, - stats); + try { + orcWriter = new OrcWriter( + target, + columnNames, + storageTypes, + ORC, + requireNonNull(compression, "compression is null"), + DEFAULT_OPTION, + userMetadata, + DEFAULT_STORAGE_TIMEZONE, + validate, + HASHED, + stats); + } + catch (NotSupportedException e) { + throw new PrestoException(NOT_SUPPORTED, e.getMessage(), e); + } } @Override From 10a8cb56c5a93ae8a8497ffc7dda9ecb83a07faa Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Tue, 5 May 2020 16:11:48 -0700 Subject: [PATCH 081/129] Add extracted common sub-expression to debug level logging --- .../presto/sql/gen/PageFunctionCompiler.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 832cceb4d4b74..85cbf21ab985a 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.sql.gen; +import com.facebook.airlift.log.Logger; import com.facebook.presto.bytecode.BytecodeBlock; import com.facebook.presto.bytecode.BytecodeNode; import com.facebook.presto.bytecode.ClassDefinition; @@ -113,6 +114,8 @@ public class PageFunctionCompiler { + private static Logger log = Logger.get(PageFunctionCompiler.class); + private final Metadata metadata; private final DeterminismEvaluator determinismEvaluator; @@ -303,6 +306,11 @@ private ClassDefinition definePageProjectWorkClass(SqlFunctionProperties sqlFunc .flatMap(m -> m.entrySet().stream()) .collect(toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)); projections = projections.stream().map(projection -> rewriteExpressionWithCSE(projection, commonSubExpressions)).collect(toImmutableList()); + if (log.isDebugEnabled()) { + log.debug("Extracted %d common sub-expressions", commonSubExpressions.size()); + commonSubExpressions.entrySet().forEach(entry -> log.debug("\t%s = %s", entry.getValue(), entry.getKey())); + log.debug("Rewrote %d projections: %s", projections.size(), Joiner.on(", ").join(projections)); + } } } @@ -588,6 +596,11 @@ private ClassDefinition defineFilterClass(SqlFunctionProperties sqlFunctionPrope .flatMap(m -> m.entrySet().stream()) .collect(toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)); filter = rewriteExpressionWithCSE(filter, commonSubExpressions); + if (log.isDebugEnabled()) { + log.debug("Extracted %d common sub-expressions", commonSubExpressions.size()); + commonSubExpressions.entrySet().forEach(entry -> log.debug("\t%s = %s", entry.getValue(), entry.getKey())); + log.debug("Rewrote filter: %s", filter); + } } } From 5618ebd4f2d8579f8d31a0e13c20b70a1241981c Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Fri, 1 May 2020 16:46:48 -0700 Subject: [PATCH 082/129] Partition projections into subsets that depend on same common sub-expressions In queries with many projections, sometimes the projections can be partitioned into disjoint sets that do not share common sub-expressions across sets. In this situation, it's more performant to compile them into separate PagePorjections rather than keep then all in one. This also avoids corner cases where too many projections and common sub-expressions causing the generated class to trigger bytecode too large exception. --- .../sql/gen/CommonSubExpressionRewriter.java | 70 ++++++++++++++++++- .../presto/sql/gen/PageFunctionCompiler.java | 27 ++++--- .../gen/TestCommonSubExpressionRewritter.java | 20 ++++-- 3 files changed, 102 insertions(+), 15 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java index ad926060f0cb3..0fb3feeebbcd5 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/CommonSubExpressionRewriter.java @@ -24,12 +24,15 @@ import com.facebook.presto.sql.planner.PlanVariableAllocator; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Sets; +import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; import static com.facebook.presto.spi.relation.SpecialFormExpression.Form.WHEN; import static com.facebook.presto.sql.relational.Expressions.subExpressions; @@ -82,16 +85,77 @@ public static Map> coll return collectCSEByLevel(ImmutableList.of(expression)); } - public static List getExpressionsWithCSE(List expressions) + public static Map, Boolean> getExpressionsPartitionedByCSE(Collection expressions) { if (expressions.isEmpty()) { - return ImmutableList.of(); + return ImmutableMap.of(); } + CommonSubExpressionCollector expressionCollector = new CommonSubExpressionCollector(); expressions.forEach(expression -> expression.accept(expressionCollector, null)); Set cse = expressionCollector.cseByLevel.values().stream().flatMap(Set::stream).collect(toImmutableSet()); + + if (cse.isEmpty()) { + return expressions.stream().collect(toImmutableMap(ImmutableList::of, m -> false)); + } + + ImmutableMap.Builder, Boolean> expressionsPartitionedByCse = ImmutableMap.builder(); SubExpressionChecker subExpressionChecker = new SubExpressionChecker(cse); - return expressions.stream().filter(expression -> expression.accept(subExpressionChecker, null)).collect(toImmutableList()); + Map> expressionsWithCseFlag = expressions.stream().collect(Collectors.partitioningBy(expression -> expression.accept(subExpressionChecker, null))); + expressionsWithCseFlag.get(false).forEach(expression -> expressionsPartitionedByCse.put(ImmutableList.of(expression), false)); + + List expressionsWithCse = expressionsWithCseFlag.get(true); + if (expressionsWithCse.size() == 1) { + RowExpression expression = expressionsWithCse.get(0); + expressionsPartitionedByCse.put(ImmutableList.of(expression), true); + return expressionsPartitionedByCse.build(); + } + + List> cseDependency = expressionsWithCse.stream() + .map(expression -> subExpressions(expression).stream() + .filter(cse::contains) + .collect(toImmutableSet())) + .collect(toImmutableList()); + + boolean[] merged = new boolean[expressionsWithCse.size()]; + + int i = 0; + while (i < merged.length) { + while (i < merged.length && merged[i]) { + i++; + } + if (i >= merged.length) { + break; + } + merged[i] = true; + ImmutableList.Builder newList = ImmutableList.builder(); + newList.add(expressionsWithCse.get(i)); + Set dependencies = new HashSet<>(); + Set first = cseDependency.get(i); + dependencies.addAll(first); + int j = i + 1; + while (j < merged.length) { + while (j < merged.length && merged[j]) { + j++; + } + if (j >= merged.length) { + break; + } + Set second = cseDependency.get(j); + if (!Sets.intersection(dependencies, second).isEmpty()) { + RowExpression expression = expressionsWithCse.get(j); + newList.add(expression); + dependencies.addAll(second); + merged[j] = true; + } + else { + j++; + } + } + expressionsPartitionedByCse.put(newList.build(), true); + } + + return expressionsPartitionedByCse.build(); } public static RowExpression rewriteExpressionWithCSE(RowExpression expression, Map rewriteWith) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index 85cbf21ab985a..e9f69c4462ffd 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -99,7 +99,7 @@ import static com.facebook.presto.sql.gen.BytecodeUtils.invoke; import static com.facebook.presto.sql.gen.BytecodeUtils.unboxPrimitiveIfNecessary; import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.collectCSEByLevel; -import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsWithCSE; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsPartitionedByCSE; import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.rewriteExpressionWithCSE; import static com.facebook.presto.sql.gen.LambdaBytecodeGenerator.generateMethodsForLambda; import static com.facebook.presto.sql.relational.Expressions.subExpressions; @@ -108,6 +108,7 @@ import static com.facebook.presto.util.Reflection.constructorMethodHandle; import static com.google.common.base.MoreObjects.toStringHelper; import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Verify.verify; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableMap.toImmutableMap; import static java.util.Objects.requireNonNull; @@ -180,20 +181,30 @@ public CacheStatsMBean getFilterCache() public List> compileProjections(SqlFunctionProperties sqlFunctionProperties, List projections, boolean isOptimizeCommonSubExpression, Optional classNameSuffix) { if (isOptimizeCommonSubExpression) { - List projectionsWithCSE = getExpressionsWithCSE(projections); ImmutableList.Builder> pageProjections = ImmutableList.builder(); - ImmutableList.Builder cseProjectionsOutputChannels = ImmutableList.builder(); + ImmutableMap.Builder expressionsWithPositionBuilder = ImmutableMap.builder(); for (int i = 0; i < projections.size(); i++) { RowExpression projection = projections.get(i); - if (projectionsWithCSE.contains(projection)) { - cseProjectionsOutputChannels.add(i); + if (projection instanceof ConstantExpression || projection instanceof InputReferenceExpression) { + pageProjections.add(toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projection, classNameSuffix), new int[] {i})); } else { - pageProjections.add(toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projection, classNameSuffix), new int[] {i})); + expressionsWithPositionBuilder.put(projections.get(i), i); } } - if (projectionsWithCSE.size() > 0) { - pageProjections.add(toPageProjectionWithOutputs(compileProjectionCached(sqlFunctionProperties, projectionsWithCSE, true, classNameSuffix), toIntArray(cseProjectionsOutputChannels.build()))); + Map expressionsWithPosition = expressionsWithPositionBuilder.build(); + + Map, Boolean> projectionsPartitionedByCSE = getExpressionsPartitionedByCSE(expressionsWithPosition.keySet()); + + for (Map.Entry, Boolean> entry : projectionsPartitionedByCSE.entrySet()) { + if (entry.getValue()) { + pageProjections.add(toPageProjectionWithOutputs(compileProjectionCached(sqlFunctionProperties, entry.getKey(), true, classNameSuffix), toIntArray(entry.getKey().stream().map(expressionsWithPosition::get).collect(toImmutableList())))); + } + else { + verify(entry.getKey().size() == 1, "Expect non-cse expression list to only have one element"); + RowExpression projection = entry.getKey().get(0); + pageProjections.add(toPageProjectionWithOutputs(compileProjection(sqlFunctionProperties, projection, classNameSuffix), new int[] {expressionsWithPosition.get(projection)})); + } } return pageProjections.build(); } diff --git a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java index c3048e3f7e60a..e3f0385a276c7 100644 --- a/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java +++ b/presto-main/src/test/java/com/facebook/presto/sql/gen/TestCommonSubExpressionRewritter.java @@ -37,7 +37,7 @@ import static com.facebook.presto.sql.ExpressionUtils.rewriteIdentifiersToSymbolReferences; import static com.facebook.presto.sql.analyzer.ExpressionAnalyzer.getExpressionTypes; import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.collectCSEByLevel; -import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsWithCSE; +import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.getExpressionsPartitionedByCSE; import static com.facebook.presto.sql.gen.CommonSubExpressionRewriter.rewriteExpressionWithCSE; import static org.testng.Assert.assertEquals; @@ -57,9 +57,21 @@ public class TestCommonSubExpressionRewritter @Test void testGetExpressionsWithCSE() { - List expressions = ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2"), rowExpression("x + 2")); - List expressionsWithCSE = getExpressionsWithCSE(expressions); - assertEquals(expressionsWithCSE, ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2"))); + List expressions = ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2"), rowExpression("x + 2"), rowExpression("y * (x + 2)"), rowExpression("x * y")); + Map, Boolean> expressionsWithCSE = getExpressionsPartitionedByCSE(expressions); + assertEquals( + expressionsWithCSE, + ImmutableMap.of( + ImmutableList.of(rowExpression("x + y"), rowExpression("(x + y) * 2")), true, + ImmutableList.of(rowExpression("x + 2"), rowExpression("y * (x + 2)")), true, + ImmutableList.of(rowExpression("x * y")), false)); + expressions = ImmutableList.of(rowExpression("x + y"), rowExpression("x + y + x * 2"), rowExpression("y * 2"), rowExpression("x * 2"), rowExpression("x + y * 2")); + expressionsWithCSE = getExpressionsPartitionedByCSE(expressions); + assertEquals( + expressionsWithCSE, + ImmutableMap.of( + ImmutableList.of(rowExpression("x + y"), rowExpression("x + y + x * 2"), rowExpression("x * 2")), true, + ImmutableList.of(rowExpression("y * 2"), rowExpression("x + y * 2")), true)); } @Test From 2e38dd471b5b48fe9d08740a4ddc266cef412e8f Mon Sep 17 00:00:00 2001 From: Rongrong Zhong Date: Wed, 6 May 2020 14:09:50 -0700 Subject: [PATCH 083/129] Change common sub-expression methods to return result --- .../presto/sql/gen/PageFunctionCompiler.java | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java index e9f69c4462ffd..82cd747a31076 100644 --- a/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java +++ b/presto-main/src/main/java/com/facebook/presto/sql/gen/PageFunctionCompiler.java @@ -447,7 +447,7 @@ private List generateCommonSubExpressionMethods( MethodDefinition method = classDefinition.declareMethod( a(PRIVATE), "get" + cseVariable.getName(), - type(void.class), + type(cseFields.resultType), ImmutableList.builder() .add(properties) .add(page) @@ -471,13 +471,19 @@ private List generateCommonSubExpressionMethods( metadata, sqlFunctionProperties, compiledLambdaMap); - - body.append(thisVariable) - .append(cseCompiler.compile(cse, scope, Optional.empty())) - .append(boxPrimitiveIfNecessary(scope, type)) - .putField(cseFields.resultField) - .append(thisVariable.setField(cseFields.evaluatedField, constantBoolean(true))) - .ret(); + IfStatement ifStatement = new IfStatement() + .condition(thisVariable.getField(cseFields.evaluatedField)) + .ifFalse(new BytecodeBlock() + .append(thisVariable) + .append(cseCompiler.compile(cse, scope, Optional.empty())) + .append(boxPrimitiveIfNecessary(scope, type)) + .putField(cseFields.resultField) + .append(thisVariable.setField(cseFields.evaluatedField, constantBoolean(true)))); + + body.append(ifStatement) + .append(thisVariable) + .getField(cseFields.resultField) + .retObject(); methods.add(method); cseMap.put(cseVariable, cseFields); @@ -863,13 +869,8 @@ public BytecodeNode visitLambda(LambdaDefinitionExpression lambda, Scope context public BytecodeNode visitVariableReference(VariableReferenceExpression reference, Scope context) { CommonSubExpressionFields fields = variableMap.get(reference); - IfStatement ifStatement = new IfStatement() - .condition(thisVariable.getField(fields.evaluatedField)) - .ifFalse(new BytecodeBlock() - .append(thisVariable.invoke(fields.methodName, void.class, context.getVariable("properties"), context.getVariable("page"), context.getVariable("position")))); return new BytecodeBlock() - .append(ifStatement) - .append(thisVariable.getField(fields.resultField)) + .append(thisVariable.invoke(fields.methodName, fields.resultType, context.getVariable("properties"), context.getVariable("page"), context.getVariable("position"))) .append(unboxPrimitiveIfNecessary(context, Primitives.wrap(reference.getType().getJavaType()))); } From 5699056e4c0ca44f4d98e2e0dc4bebc872ce28fb Mon Sep 17 00:00:00 2001 From: Ajay George Date: Fri, 8 May 2020 13:18:19 -0700 Subject: [PATCH 084/129] Upgrade Drift to version 1.23 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5471910ce7993..3317772faf3e5 100644 --- a/pom.xml +++ b/pom.xml @@ -52,7 +52,7 @@ 1.11.445 3.9.0 3.4.0 - 1.22 + 1.23 2.10.5 1.50 6.10 From 541aa4497a718474986cdf1c60e871917aaa86d1 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Wed, 13 Nov 2019 20:26:51 -0800 Subject: [PATCH 085/129] Fix Travis CI running limit exceptions (#220) --- .travis.yml | 7 +++++-- presto-hive/pom.xml | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a29fb84796b49..45075b1e9ed7c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,8 @@ env: - TEST_SPECIFIC_MODULES=presto-hive TEST_FLAGS="-P test-hive-pushdown-filter-queries-advanced" - TEST_SPECIFIC_MODULES=presto-hive TEST_FLAGS="-P test-hive-repartitioning" - TEST_SPECIFIC_MODULES=presto-hive TEST_FLAGS="-P test-hive-parquet" + - TEST_SPECIFIC_MODULES=presto-hive TEST_FLAGS="-P test-hive-distributed-queries" + - TEST_SPECIFIC_MODULES=presto-hive TEST_FLAGS="-P test-hive-integration-smoke" - TEST_SPECIFIC_MODULES=presto-main - TEST_SPECIFIC_MODULES=presto-mongodb TEST_FLAGS="-P test-mongo-distributed-queries" - TEST_SPECIFIC_MODULES=presto-redis TEST_FLAGS="-P test-redis-integration-smoke-test" @@ -40,6 +42,7 @@ env: - PRODUCT_TESTS_BASIC_ENVIRONMENT=true - PRODUCT_TESTS_SPECIFIC_ENVIRONMENT=true - PRODUCT_TESTS_SPECIFIC_ENVIRONMENT_2=true + - PRODUCT_TESTS_SPECIFIC_ENVIRONMENT_3=true - HIVE_TESTS=true - KUDU_TESTS=true - SPARK_INTEGRATION_TESTS=true @@ -113,7 +116,7 @@ script: fi - | if [[ -v TEST_SPECIFIC_MODULES ]]; then - ./mvnw test $MAVEN_SKIP_CHECKS_AND_DOCS -B -pl $TEST_SPECIFIC_MODULES $TEST_FLAGS + travis_wait 50 ./mvnw test $MAVEN_SKIP_CHECKS_AND_DOCS -B -pl $TEST_SPECIFIC_MODULES $TEST_FLAGS fi - | if [[ -v TEST_OTHER_MODULES ]]; then @@ -182,7 +185,7 @@ script: presto-product-tests/bin/run_on_docker.sh \ singlenode-cassandra -g cassandra fi - if [[ -v PRODUCT_TESTS_SPECIFIC_ENVIRONMENT ]]; then + if [[ -v PRODUCT_TESTS_SPECIFIC_ENVIRONMENT_3 ]]; then presto-product-tests/bin/run_on_docker.sh \ multinode-tls-kerberos -g cli,group-by,join,tls fi diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index 205ce45c40e24..13735a15f87be 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -451,6 +451,10 @@ **/TestHivePushdownIntegrationSmokeTest.java **/TestHivePushdownDistributedQueries.java **/TestParquetDistributedQueries.java + + + **/TestHiveDistributedQueries.java + **/TestHiveIntegrationSmokeTest.java @@ -587,5 +591,37 @@ + + test-hive-distributed-queries + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/TestHiveDistributedQueries.java + + + + + + + + test-hive-integration-smoke + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/TestHiveIntegrationSmokeTest.java + + + + + + From 63aca1502d561adec59abea236b9882b648ede05 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Thu, 14 Nov 2019 10:51:15 -0800 Subject: [PATCH 086/129] Port zookeeper support for hms (#221) --- pom.xml | 7 + .../thrift/ThriftMetastoreModule.java | 18 +- presto-hive/pom.xml | 86 ++++++ .../hive/MetastoreStaticClusterModule.java | 34 +++ .../hive/MetastoreZkDiscoveryBasedModule.java | 32 +++ .../PooledHiveMetastoreClientFactory.java | 92 ++++++ .../hive/ZookeeperMetastoreMonitor.java | 119 ++++++++ .../hive/ZookeeperServersetHiveCluster.java | 67 +++++ .../ZookeeperServersetMetastoreConfig.java | 136 +++++++++ .../hive/util/PooledTTransportFactory.java | 261 ++++++++++++++++++ .../twitter/hive/util/TTransportPool.java | 93 +++++++ .../hive/TestZookeeperMetastoreMonitor.java | 157 +++++++++++ ...TestZookeeperServersetMetastoreConfig.java | 67 +++++ .../presto/twitter/hive/util/TestUtils.java | 30 ++ 14 files changed, 1198 insertions(+), 1 deletion(-) create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java create mode 100644 presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java create mode 100644 presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java create mode 100644 presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java diff --git a/pom.xml b/pom.xml index 3317772faf3e5..d0cbf9694f55b 100644 --- a/pom.xml +++ b/pom.xml @@ -1048,6 +1048,12 @@ 3.6.1 + + org.apache.commons + commons-pool2 + 2.4.2 + + com.facebook.airlift.discovery discovery-server @@ -1757,6 +1763,7 @@ org.alluxio:alluxio-shaded-client org.codehaus.plexus:plexus-utils com.google.guava:guava + io.netty:netty diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java index 0da8535f2bf14..6d832f275a8e4 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java @@ -20,10 +20,14 @@ import com.facebook.presto.hive.metastore.CachingHiveMetastore; import com.facebook.presto.hive.metastore.ExtendedHiveMetastore; import com.facebook.presto.hive.metastore.RecordingHiveMetastore; +import com.facebook.presto.twitter.hive.MetastoreStaticClusterModule; +import com.facebook.presto.twitter.hive.MetastoreZkDiscoveryBasedModule; +import com.facebook.presto.twitter.hive.ZookeeperServersetMetastoreConfig; import com.google.inject.Binder; import com.google.inject.Scopes; import static com.facebook.airlift.configuration.ConfigBinder.configBinder; +import static com.facebook.airlift.configuration.ConditionalModule.installModuleIf; import static java.util.Objects.requireNonNull; import static org.weakref.jmx.ObjectNames.generatedNameOf; import static org.weakref.jmx.guice.ExportBinder.newExporter; @@ -43,7 +47,7 @@ protected void setup(Binder binder) { binder.bind(HiveMetastoreClientFactory.class).in(Scopes.SINGLETON); binder.bind(HiveCluster.class).to(StaticHiveCluster.class).in(Scopes.SINGLETON); - configBinder(binder).bindConfig(StaticMetastoreConfig.class); + bindMetastoreClusterModule(); binder.bind(HiveMetastore.class).to(ThriftHiveMetastore.class).in(Scopes.SINGLETON); @@ -73,4 +77,16 @@ protected void setup(Binder binder) newExporter(binder).export(ExtendedHiveMetastore.class) .as(generatedNameOf(CachingHiveMetastore.class, connectorId)); } + + private void bindMetastoreClusterModule() + { + install(installModuleIf( + ZookeeperServersetMetastoreConfig.class, + zkMetastoreConfig -> zkMetastoreConfig.getZookeeperServerHostAndPort() == null, + new MetastoreStaticClusterModule())); + install(installModuleIf( + ZookeeperServersetMetastoreConfig.class, + zkMetastoreConfig -> zkMetastoreConfig.getZookeeperServerHostAndPort() != null, + new MetastoreZkDiscoveryBasedModule())); + } } diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index 13735a15f87be..3bb5ab8a73ea9 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -14,6 +14,7 @@ ${project.parent.basedir} + 4.0.0 @@ -116,6 +117,11 @@ libthrift + + org.apache.commons + commons-pool2 + + io.airlift aircompressor @@ -156,6 +162,12 @@ configuration + + com.googlecode.json-simple + json-simple + 1.1 + + com.google.guava guava @@ -399,6 +411,80 @@ jmh-generator-annprocess test + + + + org.apache.curator + curator-recipes + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-framework + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-client + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-test + 2.12.0 + test + + + org.apache.zookeeper + zookeeper + + + + + + + org.apache.zookeeper + zookeeper + runtime + + + + com.101tec + zkclient + 0.10 + test + + + log4j + log4j + + + org.slf4j + slf4j-log4j12 + + + diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java new file mode 100644 index 0000000000000..8751b5bc474f6 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java @@ -0,0 +1,34 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.facebook.presto.hive.metastore.thrift.HiveCluster; +import com.facebook.presto.hive.metastore.thrift.StaticHiveCluster; +import com.facebook.presto.hive.metastore.thrift.StaticMetastoreConfig; +import com.google.inject.Binder; +import com.google.inject.Module; +import com.google.inject.Scopes; + +import static io.airlift.configuration.ConfigBinder.configBinder; + +public class MetastoreStaticClusterModule + implements Module +{ + @Override + public void configure(Binder binder) + { + binder.bind(HiveCluster.class).to(StaticHiveCluster.class).in(Scopes.SINGLETON); + configBinder(binder).bindConfig(StaticMetastoreConfig.class); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java new file mode 100644 index 0000000000000..5459eca553054 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java @@ -0,0 +1,32 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.facebook.presto.hive.metastore.thrift.HiveCluster; +import com.google.inject.Binder; +import com.google.inject.Module; +import com.google.inject.Scopes; + +import static io.airlift.configuration.ConfigBinder.configBinder; + +public class MetastoreZkDiscoveryBasedModule + implements Module +{ + @Override + public void configure(Binder binder) + { + binder.bind(HiveCluster.class).to(ZookeeperServersetHiveCluster.class).in(Scopes.SINGLETON); + configBinder(binder).bindConfig(ZookeeperServersetMetastoreConfig.class); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java new file mode 100644 index 0000000000000..270e313e75114 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java @@ -0,0 +1,92 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.facebook.presto.hive.HiveClientConfig; +import com.facebook.presto.hive.authentication.HiveMetastoreAuthentication; +import com.facebook.presto.hive.metastore.thrift.HiveMetastoreClient; +import com.facebook.presto.hive.metastore.thrift.ThriftHiveMetastoreClient; +import com.facebook.presto.twitter.hive.util.PooledTTransportFactory; +import com.facebook.presto.twitter.hive.util.TTransportPool; +import com.google.common.net.HostAndPort; +import io.airlift.units.Duration; +import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +import org.apache.thrift.transport.TTransport; +import org.apache.thrift.transport.TTransportException; + +import javax.annotation.Nullable; +import javax.inject.Inject; + +import static java.lang.Math.toIntExact; +import static java.util.Objects.requireNonNull; + +public class PooledHiveMetastoreClientFactory +{ + private final HostAndPort socksProxy; + private final int timeoutMillis; + private final HiveMetastoreAuthentication metastoreAuthentication; + private final TTransportPool transportPool; + + public PooledHiveMetastoreClientFactory(@Nullable HostAndPort socksProxy, + Duration timeout, + HiveMetastoreAuthentication metastoreAuthentication, + int maxTransport, + long idleTimeout, + long transportEvictInterval, + int evictNumTests) + { + this.socksProxy = socksProxy; + this.timeoutMillis = toIntExact(timeout.toMillis()); + this.metastoreAuthentication = requireNonNull(metastoreAuthentication, "metastoreAuthentication is null"); + GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); + poolConfig.setMaxIdle(maxTransport); + poolConfig.setMaxTotal(maxTransport); + poolConfig.setMinEvictableIdleTimeMillis(idleTimeout); + poolConfig.setTimeBetweenEvictionRunsMillis(transportEvictInterval); + poolConfig.setNumTestsPerEvictionRun(evictNumTests); + this.transportPool = new TTransportPool(poolConfig); + } + + @Inject + public PooledHiveMetastoreClientFactory(HiveClientConfig config, + ZookeeperServersetMetastoreConfig zkConfig, + HiveMetastoreAuthentication metastoreAuthentication) + { + this(config.getMetastoreSocksProxy(), + config.getMetastoreTimeout(), + metastoreAuthentication, + zkConfig.getMaxTransport(), + zkConfig.getTransportIdleTimeout(), + zkConfig.getTransportEvictInterval(), + zkConfig.getTransportEvictNumTests()); + } + + public HiveMetastoreClient create(String host, int port) + throws TTransportException + { + try { + TTransport transport = transportPool.borrowObject(host, port); + if (transport == null) { + transport = transportPool.borrowObject(host, port, + new PooledTTransportFactory(transportPool, + host, port, socksProxy, + timeoutMillis, metastoreAuthentication)); + } + return new ThriftHiveMetastoreClient(transport); + } + catch (Exception e) { + throw new TTransportException(String.format("%s: %s", host, e.getMessage()), e.getCause()); + } + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java new file mode 100644 index 0000000000000..cf8df021c1a1b --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java @@ -0,0 +1,119 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.google.common.net.HostAndPort; +import io.airlift.log.Logger; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.framework.recipes.cache.PathChildrenCache; +import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent; +import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener; +import org.apache.curator.retry.ExponentialBackoffRetry; +import org.apache.curator.utils.ZKPaths; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.stream.Collectors; + +public class ZookeeperMetastoreMonitor + implements PathChildrenCacheListener +{ + public static final Logger log = Logger.get(ZookeeperMetastoreMonitor.class); + private CuratorFramework client; + private PathChildrenCache cache; + private ConcurrentMap servers; // (Node_Name->HostAndPort) + + public ZookeeperMetastoreMonitor(String zkServer, String watchPath, int maxRetries, int retrySleepTime) + throws Exception + { + client = CuratorFrameworkFactory.newClient(zkServer, new ExponentialBackoffRetry(retrySleepTime, maxRetries)); + client.start(); + + cache = new PathChildrenCache(client, watchPath, true); // true indicating cache node contents in addition to the stat + try { + cache.start(); + } + catch (Exception ex) { + throw new RuntimeException("Curator PathCache Creation failed: " + ex.getMessage()); + } + + cache.getListenable().addListener(this); + servers = new ConcurrentHashMap<>(); + } + + public void close() + { + client.close(); + + try { + cache.close(); + } + catch (IOException ex) { + // do nothing + } + } + + public List getServers() + { + return servers.values().stream().collect(Collectors.toList()); + } + + private HostAndPort deserialize(byte[] bytes) + { + String serviceEndpoint = "serviceEndpoint"; + JSONObject data = (JSONObject) JSONValue.parse(new String(bytes)); + if (data != null && data.containsKey(serviceEndpoint)) { + Map hostPortMap = (Map) data.get(serviceEndpoint); + String host = hostPortMap.get("host").toString(); + int port = Integer.parseInt(hostPortMap.get("port").toString()); + return HostAndPort.fromParts(host, port); + } + else { + log.warn("failed to deserialize child node data"); + throw new IllegalArgumentException("No host:port found"); + } + } + + @Override + public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception + { + switch (event.getType()) { + case CHILD_ADDED: + case CHILD_UPDATED: { + HostAndPort hostPort = deserialize(event.getData().getData()); + String node = ZKPaths.getNodeFromPath(event.getData().getPath()); + log.info("child updated: " + node + ": " + hostPort); + servers.put(node, hostPort); + break; + } + + case CHILD_REMOVED: { + String node = ZKPaths.getNodeFromPath(event.getData().getPath()); + log.info("child removed: " + node); + servers.remove(node); + break; + } + + default: + log.info("connection state changed: " + event.getType()); + break; + } + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java new file mode 100644 index 0000000000000..c91912f0ff916 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java @@ -0,0 +1,67 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.facebook.presto.hive.metastore.thrift.HiveCluster; +import com.facebook.presto.hive.metastore.thrift.HiveMetastoreClient; +import com.google.common.net.HostAndPort; +import io.airlift.log.Logger; +import org.apache.thrift.transport.TTransportException; + +import javax.inject.Inject; + +import java.util.Collections; +import java.util.List; + +import static java.util.Objects.requireNonNull; + +public class ZookeeperServersetHiveCluster + implements HiveCluster +{ + private static final Logger log = Logger.get(ZookeeperServersetHiveCluster.class); + private final PooledHiveMetastoreClientFactory clientFactory; + private ZookeeperMetastoreMonitor zkMetastoreMonitor; + + @Inject + public ZookeeperServersetHiveCluster(ZookeeperServersetMetastoreConfig config, PooledHiveMetastoreClientFactory clientFactory) + throws Exception + { + String zkServerHostAndPort = requireNonNull(config.getZookeeperServerHostAndPort(), "zkServerHostAndPort is null"); + String zkMetastorePath = requireNonNull(config.getZookeeperMetastorePath(), "zkMetastorePath is null"); + int zkRetries = requireNonNull(config.getZookeeperMaxRetries(), "zkMaxRetried is null"); + int zkRetrySleepTime = requireNonNull(config.getZookeeperRetrySleepTime(), "zkRetrySleepTime is null"); + this.clientFactory = requireNonNull(clientFactory, "clientFactory is null"); + this.zkMetastoreMonitor = new ZookeeperMetastoreMonitor(zkServerHostAndPort, zkMetastorePath, zkRetries, zkRetrySleepTime); + } + + @Override + public HiveMetastoreClient createMetastoreClient() + { + List metastores = zkMetastoreMonitor.getServers(); + Collections.shuffle(metastores); + TTransportException lastException = null; + for (HostAndPort metastore : metastores) { + try { + log.info("Connecting to metastore at: %s", metastore.toString()); + return clientFactory.create(metastore.getHost(), metastore.getPort()); + } + catch (TTransportException e) { + log.debug("Failed connecting to Hive metastore at: %s", metastore.toString()); + lastException = e; + } + } + + throw new RuntimeException("Failed connecting to Hive metastore.", lastException); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java new file mode 100644 index 0000000000000..65b424b6c437e --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java @@ -0,0 +1,136 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import io.airlift.configuration.Config; +import io.airlift.configuration.ConfigDescription; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +public class ZookeeperServersetMetastoreConfig +{ + private String zookeeperServerHostAndPort; + private String zookeeperMetastorePath; + private int zookeeperRetrySleepTime = 500; // ms + private int zookeeperMaxRetries = 3; + private int maxTransport = 128; + private long transportIdleTimeout = 300_000L; + private long transportEvictInterval = 10_000L; + private int transportEvictNumTests = 3; + + public String getZookeeperServerHostAndPort() + { + return zookeeperServerHostAndPort; + } + + @Config("hive.metastore.zookeeper.uri") + @ConfigDescription("Zookeeper Host and Port") + public ZookeeperServersetMetastoreConfig setZookeeperServerHostAndPort(String zookeeperServerHostAndPort) + { + this.zookeeperServerHostAndPort = zookeeperServerHostAndPort; + return this; + } + + public String getZookeeperMetastorePath() + { + return zookeeperMetastorePath; + } + + @Config("hive.metastore.zookeeper.path") + @ConfigDescription("Hive metastore Zookeeper path") + public ZookeeperServersetMetastoreConfig setZookeeperMetastorePath(String zkPath) + { + this.zookeeperMetastorePath = zkPath; + return this; + } + + @NotNull + public int getZookeeperRetrySleepTime() + { + return zookeeperRetrySleepTime; + } + + @Config("hive.metastore.zookeeper.retry.sleeptime") + @ConfigDescription("Zookeeper sleep time between reties") + public ZookeeperServersetMetastoreConfig setZookeeperRetrySleepTime(int zookeeperRetrySleepTime) + { + this.zookeeperRetrySleepTime = zookeeperRetrySleepTime; + return this; + } + + @Min(1) + public int getZookeeperMaxRetries() + { + return zookeeperMaxRetries; + } + + @Config("hive.metastore.zookeeper.max.retries") + @ConfigDescription("Zookeeper max reties") + public ZookeeperServersetMetastoreConfig setZookeeperMaxRetries(int zookeeperMaxRetries) + { + this.zookeeperMaxRetries = zookeeperMaxRetries; + return this; + } + + @Min(1) + public int getMaxTransport() + { + return maxTransport; + } + + @Config("hive.metastore.max-transport-num") + public ZookeeperServersetMetastoreConfig setMaxTransport(int maxTransport) + { + this.maxTransport = maxTransport; + return this; + } + + public long getTransportIdleTimeout() + { + return transportIdleTimeout; + } + + @Config("hive.metastore.transport-idle-timeout") + public ZookeeperServersetMetastoreConfig setTransportIdleTimeout(long transportIdleTimeout) + { + this.transportIdleTimeout = transportIdleTimeout; + return this; + } + + public long getTransportEvictInterval() + { + return transportEvictInterval; + } + + @Config("hive.metastore.transport-eviction-interval") + public ZookeeperServersetMetastoreConfig setTransportEvictInterval(long transportEvictInterval) + { + this.transportEvictInterval = transportEvictInterval; + return this; + } + + @Min(0) + public int getTransportEvictNumTests() + { + return transportEvictNumTests; + } + + @Config("hive.metastore.transport-eviction-num-tests") + public ZookeeperServersetMetastoreConfig setTransportEvictNumTests(int transportEvictNumTests) + { + this.transportEvictNumTests = transportEvictNumTests; + return this; + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java new file mode 100644 index 0000000000000..f823576d83894 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java @@ -0,0 +1,261 @@ +/* + * 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 com.facebook.presto.twitter.hive.util; + +import com.facebook.presto.hive.authentication.HiveMetastoreAuthentication; +import com.google.common.net.HostAndPort; +import org.apache.commons.pool2.BasePooledObjectFactory; +import org.apache.commons.pool2.PooledObject; +import org.apache.commons.pool2.impl.DefaultPooledObject; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; +import org.apache.thrift.transport.TTransportException; + +import javax.annotation.Nullable; + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.Socket; +import java.net.SocketAddress; +import java.net.SocketException; + +import static java.util.Objects.requireNonNull; + +public class PooledTTransportFactory + extends BasePooledObjectFactory +{ + private final TTransportPool pool; + private final String host; + private final int port; + private final HostAndPort socksProxy; + private final int timeoutMillis; + private final HiveMetastoreAuthentication metastoreAuthentication; + + public PooledTTransportFactory(TTransportPool pool, + String host, + int port, + @Nullable HostAndPort socksProxy, + int timeoutMillis, + HiveMetastoreAuthentication metastoreAuthentication) + { + this.pool = requireNonNull(pool, "pool is null"); + this.host = requireNonNull(host, "host is null"); + this.port = port; + this.socksProxy = socksProxy; + this.timeoutMillis = timeoutMillis; + this.metastoreAuthentication = requireNonNull(metastoreAuthentication, "metastoreAuthentication is null"); + } + + @Override + public void activateObject(PooledObject pooledObject) + throws Exception + { + pooledObject.getObject().flush(); + } + + @Override + public boolean validateObject(PooledObject pooledObject) + { + try { + return (pooledObject.getObject().isOpen() && + ((PooledTTransport) pooledObject.getObject()).isReachable(timeoutMillis)); + } + catch (Exception e) { + return false; + } + } + + @Override + public TTransport create() + throws Exception + { + TTransport transport; + if (socksProxy == null) { + transport = new TSocket(host, port, timeoutMillis); + } + else { + SocketAddress address = InetSocketAddress.createUnresolved(socksProxy.getHost(), + socksProxy.getPort()); + Socket socket = new Socket(new Proxy(Proxy.Type.SOCKS, address)); + try { + socket.connect(InetSocketAddress.createUnresolved(host, port), timeoutMillis); + socket.setSoTimeout(timeoutMillis); + transport = new TSocket(socket); + } + catch (SocketException e) { + if (socket.isConnected()) { + try { + socket.close(); + } + catch (IOException ioException) { + // ignored + } + } + throw e; + } + } + TTransport authenticatedTransport = metastoreAuthentication.authenticate(transport, host); + if (!authenticatedTransport.isOpen()) { + authenticatedTransport.open(); + } + + return new PooledTTransport(authenticatedTransport, pool, + HostAndPort.fromParts(host, port).toString()); + } + + @Override + public void destroyObject(PooledObject pooledObject) + { + try { + ((PooledTTransport) pooledObject.getObject()).getTTransport().close(); + } + catch (ClassCastException e) { + // ignore + } + pooledObject.invalidate(); + } + + @Override + public PooledObject wrap(TTransport transport) + { + return new DefaultPooledObject(transport); + } + + @Override + public void passivateObject(PooledObject pooledObject) + { + try { + pooledObject.getObject().flush(); + } + catch (TTransportException e) { + destroyObject(pooledObject); + } + } + + private static class PooledTTransport + extends TTransport + { + private final String remote; + private final TTransportPool pool; + private final TTransport transport; + + public PooledTTransport(TTransport transport, TTransportPool pool, String remote) + { + this.transport = transport; + this.pool = pool; + this.remote = remote; + } + + public TTransport getTTransport() + { + return transport; + } + + public boolean isReachable(int timeoutMillis) + throws ClassCastException, IOException + { + return ((TSocket) transport).getSocket().getInetAddress().isReachable(timeoutMillis); + } + + @Override + public void close() + { + try { + pool.returnObject(remote, this, transport); + } + catch (Exception e) { + transport.close(); + } + } + + @Override + public boolean isOpen() + { + return transport.isOpen(); + } + + @Override + public boolean peek() + { + return transport.peek(); + } + + @Override + public byte[] getBuffer() + { + return transport.getBuffer(); + } + + @Override + public int getBufferPosition() + { + return transport.getBufferPosition(); + } + + @Override + public int getBytesRemainingInBuffer() + { + return transport.getBytesRemainingInBuffer(); + } + + @Override + public void consumeBuffer(int len) + { + transport.consumeBuffer(len); + } + + @Override + public void open() + throws TTransportException + { + transport.open(); + } + + @Override + public int readAll(byte[] bytes, int off, int len) + throws TTransportException + { + return transport.readAll(bytes, off, len); + } + + @Override + public int read(byte[] bytes, int off, int len) + throws TTransportException + { + return transport.read(bytes, off, len); + } + + @Override + public void write(byte[] bytes) + throws TTransportException + { + transport.write(bytes); + } + + @Override + public void write(byte[] bytes, int off, int len) + throws TTransportException + { + transport.write(bytes, off, len); + } + + @Override + public void flush() + throws TTransportException + { + transport.flush(); + } + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java new file mode 100644 index 0000000000000..7d2a3b5af23b1 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java @@ -0,0 +1,93 @@ +/* + * 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 com.facebook.presto.twitter.hive.util; + +import com.google.common.net.HostAndPort; +import org.apache.commons.pool2.ObjectPool; +import org.apache.commons.pool2.PooledObjectFactory; +import org.apache.commons.pool2.impl.GenericObjectPool; +import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +import org.apache.thrift.transport.TTransport; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +public class TTransportPool +{ + private final ConcurrentMap> pools = new ConcurrentHashMap(); + private GenericObjectPoolConfig poolConfig; + + public TTransportPool(GenericObjectPoolConfig poolConfig) + { + this.poolConfig = poolConfig; + } + + protected synchronized void add(String remote, PooledObjectFactory transportFactory) + { + pools.putIfAbsent(remote, new GenericObjectPool(transportFactory, poolConfig)); + } + + protected TTransport get(String remote, PooledObjectFactory transportFactory) + throws Exception + { + add(remote, transportFactory); + return get(remote); + } + + protected TTransport get(String remote) + throws Exception + { + ObjectPool pool = pools.get(remote); + if (pool == null) { + return null; + } + return pool.borrowObject(); + } + + public TTransport borrowObject(String host, int port, PooledObjectFactory transportFactory) + throws Exception + { + return get(HostAndPort.fromParts(host, port).toString(), transportFactory); + } + + public TTransport borrowObject(String host, int port) + throws Exception + { + return get(HostAndPort.fromParts(host, port).toString()); + } + + public void returnObject(String remote, TTransport pooledTransport, TTransport transport) + { + if (remote == null) { + transport.close(); + return; + } + ObjectPool pool = pools.get(remote); + if (pool == null) { + transport.close(); + return; + } + try { + pool.returnObject(pooledTransport); + } + catch (Exception e) { + transport.close(); + } + } + + public void returnObject(TTransport transport) + { + transport.close(); + } +} diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java new file mode 100644 index 0000000000000..1f89464aedce3 --- /dev/null +++ b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java @@ -0,0 +1,157 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.facebook.presto.twitter.hive.util.TestUtils; +import com.google.common.collect.ImmutableList; +import com.google.common.net.HostAndPort; +import io.airlift.log.Logger; +import org.I0Itec.zkclient.ZkClient; +import org.I0Itec.zkclient.exception.ZkMarshallingError; +import org.I0Itec.zkclient.serialize.ZkSerializer; +import org.apache.curator.test.TestingServer; +import org.json.simple.JSONObject; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import static org.testng.Assert.assertTrue; + +public class TestZookeeperMetastoreMonitor +{ + private static final Logger log = Logger.get(TestZookeeperMetastoreMonitor.class); + + private ZookeeperMetastoreMonitor zkMetastoreMonitor; + private TestingServer zkServer; + private ZkClient zkClient; + private final String zkPath = "/metastores"; + + public TestZookeeperMetastoreMonitor() + throws Exception + { + zkServer = new TestingServer(TestUtils.findUnusedPort()); + zkClient = new ZkClient(zkServer.getConnectString(), 30_000, 30_000); + + // Set the serializer + zkClient.setZkSerializer(new ZkSerializer() { + @Override + public byte[] serialize(Object o) throws ZkMarshallingError + { + try { + return o.toString().getBytes(StandardCharsets.UTF_8); + } + catch (Exception e) { + log.warn("Exception in serializing " + e); + } + return "".getBytes(); + } + + @Override + public Object deserialize(byte[] bytes) throws ZkMarshallingError + { + return null; + } + }); + } + + @AfterClass + public void destroy() + throws IOException + { + zkMetastoreMonitor.close(); + zkClient.close(); + zkServer.close(); + } + + @BeforeTest + public void setUp() + throws Exception + { + log.info("Cleaning up zookeeper"); + zkClient.getChildren("/").stream() + .filter(child -> !child.equals("zookeeper")) + .forEach(child -> zkClient.deleteRecursive("/" + child)); + + zkClient.unsubscribeAll(); + + zkClient.createPersistent(zkPath); + zkMetastoreMonitor = new ZookeeperMetastoreMonitor(zkServer.getConnectString(), zkPath, 3, 500); + } + + @Test + public void testGetServers() throws Exception + { + List servers; + List expected; + assertTrue(zkMetastoreMonitor.getServers().isEmpty()); + + addServerToZk("nameNode1", "host1", 10001); + // Sleep for some time so that event can be propagated. + TimeUnit.MILLISECONDS.sleep(100); + servers = zkMetastoreMonitor.getServers(); + expected = ImmutableList.of(HostAndPort.fromParts("host1", 10001)); + assertTrue(servers.containsAll(expected) && expected.containsAll(servers)); + + addServerToZk("nameNode2", "host2", 10002); + // Sleep for some time so that event can be propagated. + TimeUnit.MILLISECONDS.sleep(100); + servers = zkMetastoreMonitor.getServers(); + expected = ImmutableList.of(HostAndPort.fromParts("host1", 10001), HostAndPort.fromParts("host2", 10002)); + assertTrue(servers.containsAll(expected) && expected.containsAll(servers)); + + // Change value of an existing name node + addServerToZk("nameNode2", "host2", 10003); + // Sleep for some time so that event can be propagated. + TimeUnit.MILLISECONDS.sleep(100); + servers = zkMetastoreMonitor.getServers(); + expected = ImmutableList.of(HostAndPort.fromParts("host1", 10001), HostAndPort.fromParts("host2", 10003)); + assertTrue(servers.containsAll(expected) && expected.containsAll(servers)); + + // Delete an existing name node + zkClient.delete(getPathForNameNode("nameNode1")); + // Sleep for some time so that event can be propagated. + TimeUnit.MILLISECONDS.sleep(100); + servers = zkMetastoreMonitor.getServers(); + expected = ImmutableList.of(HostAndPort.fromParts("host2", 10003)); + assertTrue(servers.containsAll(expected) && expected.containsAll(servers), servers.toString()); + } + + private void addServerToZk(String nameNode, String host, int port) + { + JSONObject serviceEndpoint = new JSONObject(); + serviceEndpoint.put("host", host); + serviceEndpoint.put("port", port); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("serviceEndpoint", serviceEndpoint); + + String path = getPathForNameNode(nameNode); + + if (!zkClient.exists(path)) { + zkClient.createPersistent(path, jsonObject.toJSONString()); + } + else { + zkClient.writeData(path, jsonObject.toJSONString()); + } + } + + private String getPathForNameNode(String nameNode) + { + return zkPath + "/" + nameNode; + } +} diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java new file mode 100644 index 0000000000000..b839a8d154042 --- /dev/null +++ b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java @@ -0,0 +1,67 @@ +/* + * 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 com.facebook.presto.twitter.hive; + +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.Test; + +import java.util.Map; + +import static io.airlift.configuration.testing.ConfigAssertions.assertFullMapping; +import static io.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; +import static io.airlift.configuration.testing.ConfigAssertions.recordDefaults; + +public class TestZookeeperServersetMetastoreConfig +{ + @Test + public void testDefaults() + { + assertRecordedDefaults(recordDefaults(ZookeeperServersetMetastoreConfig.class) + .setZookeeperMaxRetries(3) + .setZookeeperRetrySleepTime(500) + .setZookeeperMetastorePath(null) + .setZookeeperServerHostAndPort(null) + .setMaxTransport(128) + .setTransportIdleTimeout(300_000L) + .setTransportEvictInterval(10_000L) + .setTransportEvictNumTests(3)); + } + + @Test + public void testExplicitPropertyMappingsSingleMetastore() + { + Map properties = new ImmutableMap.Builder() + .put("hive.metastore.zookeeper.uri", "localhost:2181") + .put("hive.metastore.zookeeper.path", "/zookeeper/path/") + .put("hive.metastore.zookeeper.retry.sleeptime", "200") + .put("hive.metastore.zookeeper.max.retries", "2") + .put("hive.metastore.max-transport-num", "64") + .put("hive.metastore.transport-idle-timeout", "100000") + .put("hive.metastore.transport-eviction-interval", "1000") + .put("hive.metastore.transport-eviction-num-tests", "10") + .build(); + + ZookeeperServersetMetastoreConfig expected = new ZookeeperServersetMetastoreConfig() + .setZookeeperServerHostAndPort("localhost:2181") + .setZookeeperMetastorePath("/zookeeper/path/") + .setZookeeperRetrySleepTime(200) + .setZookeeperMaxRetries(2) + .setMaxTransport(64) + .setTransportIdleTimeout(100_000L) + .setTransportEvictInterval(1_000L) + .setTransportEvictNumTests(10); + + assertFullMapping(properties, expected); + } +} diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java new file mode 100644 index 0000000000000..379ad3877e325 --- /dev/null +++ b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java @@ -0,0 +1,30 @@ +/* + * 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 com.facebook.presto.twitter.hive.util; + +import java.io.IOException; +import java.net.ServerSocket; + +public final class TestUtils +{ + private TestUtils() {} + + public static int findUnusedPort() + throws IOException + { + try (ServerSocket socket = new ServerSocket(0)) { + return socket.getLocalPort(); + } + } +} From 9f23d37c39f0ac26e750c7698cacdc98d530b30c Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Thu, 14 Nov 2019 14:09:37 -0800 Subject: [PATCH 087/129] Port lzo thrift support (#222) --- .../presto/hive/HiveStorageFormat.java | 15 +- presto-hive/pom.xml | 31 +- .../presto/hive/HiveClientModule.java | 6 + .../com/facebook/presto/hive/HiveUtil.java | 40 +- .../thrift/HiveThriftFieldIdResolver.java | 130 +++ .../HiveThriftFieldIdResolverFactory.java | 49 ++ .../hive/thrift/ThriftFieldIdResolver.java | 20 + .../thrift/ThriftFieldIdResolverFactory.java | 21 + .../thrift/ThriftGeneralDeserializer.java | 50 ++ .../hive/thrift/ThriftGeneralInputFormat.java | 95 +++ .../twitter/hive/thrift/ThriftGenericRow.java | 241 ++++++ .../hive/thrift/ThriftHiveRecordCursor.java | 737 ++++++++++++++++++ .../ThriftHiveRecordCursorProvider.java | 167 ++++ .../presto/hive/AbstractTestHiveClient.java | 2 + .../presto/hive/TestHiveFileFormats.java | 62 ++ .../hive/TestHiveIntegrationSmokeTest.java | 58 +- .../presto/hive/TestHivePageSink.java | 3 + .../thrift/TestHiveThriftFieldIdResolver.java | 111 +++ .../src/test/resources/addressbook.thrift.lzo | Bin 0 -> 204 bytes 19 files changed, 1833 insertions(+), 5 deletions(-) create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolver.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolverFactory.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java create mode 100644 presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java create mode 100644 presto-hive/src/test/java/com/facebook/presto/twitter/hive/thrift/TestHiveThriftFieldIdResolver.java create mode 100644 presto-hive/src/test/resources/addressbook.thrift.lzo diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java index 28952b8cf4d4e..5be3827c84e2c 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.hive; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.twitter.hive.thrift.ThriftGeneralInputFormat; import io.airlift.units.DataSize; import io.airlift.units.DataSize.Unit; import org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat; @@ -31,6 +33,12 @@ import org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe; import org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe; import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe; +import org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe; +import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; +import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; +import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; +import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.mapred.SequenceFileInputFormat; import org.apache.hadoop.mapred.TextInputFormat; import org.apache.hive.hcatalog.data.JsonSerDe; @@ -88,7 +96,12 @@ public enum HiveStorageFormat "", // SerDe is not applicable for PAGEFILE "PageInputFormat", "PageOutputFormat", - new DataSize(0, Unit.MEGABYTE)); // memory usage is not applicable for PAGEFILE + new DataSize(0, Unit.MEGABYTE)), // memory usage is not applicable for PAGEFILE + THRIFTBINARY( + LazyBinarySerDe.class.getName(), + ThriftGeneralInputFormat.class.getName(), + HiveIgnoreKeyTextOutputFormat.class.getName(), + new DataSize(8, Unit.MEGABYTE)); private final String serde; private final String inputFormat; diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index 3bb5ab8a73ea9..9020383fc2198 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -271,6 +271,36 @@ jackson-databind + + com.twitter.elephantbird + elephant-bird-core + 4.14 + thrift9 + + + commons-logging + commons-logging + + + com.hadoop.gplcompression + hadoop-lzo + + + + + + commons-io + commons-io + 2.5 + runtime + + + + commons-lang + commons-lang + 2.4 + + com.facebook.airlift @@ -390,7 +420,6 @@ org.anarres.lzo lzo-hadoop - test diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientModule.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientModule.java index fd9087ec2e478..1502bdc1efb6b 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientModule.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveClientModule.java @@ -50,6 +50,9 @@ import com.facebook.presto.spi.connector.ConnectorPageSourceProvider; import com.facebook.presto.spi.connector.ConnectorPlanOptimizerProvider; import com.facebook.presto.spi.connector.ConnectorSplitManager; +import com.facebook.presto.twitter.hive.thrift.HiveThriftFieldIdResolverFactory; +import com.facebook.presto.twitter.hive.thrift.ThriftFieldIdResolverFactory; +import com.facebook.presto.twitter.hive.thrift.ThriftHiveRecordCursorProvider; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.util.concurrent.ListeningExecutorService; @@ -108,6 +111,8 @@ public void configure(Binder binder) binder.bind(NamenodeStats.class).in(Scopes.SINGLETON); newExporter(binder).export(NamenodeStats.class).as(generatedNameOf(NamenodeStats.class, connectorId)); + binder.bind(ThriftFieldIdResolverFactory.class).toInstance(new HiveThriftFieldIdResolverFactory()); + binder.bind(PrestoS3ClientFactory.class).in(Scopes.SINGLETON); binder.bind(DirectoryLister.class).annotatedWith(ForCachingDirectoryLister.class).to(HadoopDirectoryLister.class).in(Scopes.SINGLETON); @@ -117,6 +122,7 @@ public void configure(Binder binder) Multibinder recordCursorProviderBinder = newSetBinder(binder, HiveRecordCursorProvider.class); recordCursorProviderBinder.addBinding().to(S3SelectRecordCursorProvider.class).in(Scopes.SINGLETON); + recordCursorProviderBinder.addBinding().to(ThriftHiveRecordCursorProvider.class).in(Scopes.SINGLETON); recordCursorProviderBinder.addBinding().to(GenericHiveRecordCursorProvider.class).in(Scopes.SINGLETON); binder.bind(HiveWriterStats.class).in(Scopes.SINGLETON); diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java index e632b16797a69..9f8a570f40f1e 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java @@ -37,6 +37,7 @@ import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.SchemaTableName; +import com.facebook.presto.twitter.hive.thrift.ThriftGeneralInputFormat; import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.base.VerifyException; @@ -50,6 +51,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PathFilter; import org.apache.hadoop.hive.common.JavaUtils; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat; @@ -141,6 +143,7 @@ import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.transform; +import static com.hadoop.compression.lzo.LzoIndex.LZO_INDEX_SUFFIX; import static java.lang.Byte.parseByte; import static java.lang.Double.parseDouble; import static java.lang.Float.floatToRawIntBits; @@ -177,6 +180,22 @@ public final class HiveUtil private static final String BIG_DECIMAL_POSTFIX = "BD"; + private static final PathFilter LZOP_DEFAULT_SUFFIX_FILTER = new PathFilter() { + @Override + public boolean accept(Path path) + { + return path.toString().endsWith(".lzo"); + } + }; + + private static final PathFilter LZOP_INDEX_DEFAULT_SUFFIX_FILTER = new PathFilter() { + @Override + public boolean accept(Path path) + { + return path.toString().endsWith(".lzo.index"); + } + }; + static { DateTimeParser[] timestampWithoutTimeZoneParser = { DateTimeFormat.forPattern("yyyy-M-d").getParser(), @@ -217,7 +236,7 @@ private HiveUtil() // propagate serialization configuration to getRecordReader schema.stringPropertyNames().stream() - .filter(name -> name.startsWith("serialization.")) + .filter(name -> name.startsWith("serialization.") || name.startsWith("elephantbird.")) .forEach(name -> jobConf.set(name, schema.getProperty(name))); // add Airlift LZO and LZOP to head of codecs list so as to not override existing entries @@ -315,6 +334,10 @@ public static Optional getCompressionCodec(TextInputFormat inp if (PageInputFormat.class.getSimpleName().equals(inputFormatName)) { return PageInputFormat.class; } + // Remove this after https://github.com/twitter/elephant-bird/pull/481 is included in a release + if ("com.twitter.elephantbird.mapred.input.HiveMultiInputFormat".equals(inputFormatName)) { + return ThriftGeneralInputFormat.class; + } Class clazz = conf.getClassByName(inputFormatName); return (Class>) clazz.asSubclass(InputFormat.class); @@ -368,6 +391,21 @@ public static boolean isSplittable(InputFormat inputFormat, FileSystem fil } } + public static boolean isLzopCompressedFile(Path filePath) + { + return LZOP_DEFAULT_SUFFIX_FILTER.accept(filePath); + } + + public static boolean isLzopIndexFile(Path filePath) + { + return LZOP_INDEX_DEFAULT_SUFFIX_FILTER.accept(filePath); + } + + public static Path getLzopIndexPath(Path lzoPath) + { + return lzoPath.suffix(LZO_INDEX_SUFFIX); + } + public static StructObjectInspector getTableObjectInspector(@SuppressWarnings("deprecation") Deserializer deserializer) { try { diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java new file mode 100644 index 0000000000000..077a409fd2a2e --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java @@ -0,0 +1,130 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.fasterxml.jackson.databind.JsonNode; + +import java.util.HashMap; +import java.util.Map; + +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static com.google.common.base.MoreObjects.toStringHelper; + +/** + * Resolve the translation of continuous hive ids to discontinuous thrift ids by using a json property. + * Example: + * We have the thrift definition: + * + * struct Name { + * 1: string first, + * 2: string last + * } + * struct Person { + * 1: Name name, + * 3: String phone + * } + * + * Hive table for Person: + * + * +---------+-------------+----------------------------------+-----------------+ + * | hive id | column name | type | thrift field id | + * +---------+-------------+----------------------------------+-----------------+ + * | 0 | name | struct | 1 | + * +---------+-------------+----------------------------------+-----------------+ + * | 1 | phone | string | 3 | + * +---------+-------------+----------------------------------+-----------------+ + * + * The corresponding id mapping object is: + * + * x = { + * '0': { + * '0': 1, + * '1': 2, + * }, + * '1': 3 + * } + * + * The json property is: + * + * {"0":{"0":1,"1":2},"1":3} + */ +public class HiveThriftFieldIdResolver + implements ThriftFieldIdResolver +{ + private final JsonNode root; + private final Map nestedResolvers = new HashMap<>(); + private final Map thriftIds = new HashMap<>(); + + public HiveThriftFieldIdResolver(JsonNode root) + { + this.root = root; + } + + @Override + public short getThriftId(int hiveIndex) + { + if (root == null) { + return (short) (hiveIndex + 1); + } + + Short thriftId = thriftIds.get(hiveIndex); + if (thriftId != null) { + return thriftId; + } + else { + JsonNode child = root.get(String.valueOf(hiveIndex)); + checkCondition(child != null, HIVE_INVALID_METADATA, "Missed json value for hiveIndex: %s, root: %s", hiveIndex, root); + if (child.isNumber()) { + thriftId = (short) child.asInt(); + } + else { + checkCondition(child.get("id") != null, HIVE_INVALID_METADATA, "Missed id for hiveIndex: %s, root: %s", hiveIndex, root); + thriftId = (short) child.get("id").asInt(); + } + thriftIds.put(hiveIndex, thriftId); + return thriftId; + } + } + + @Override + public ThriftFieldIdResolver getNestedResolver(int hiveIndex) + { + if (root == null) { + return this; + } + + ThriftFieldIdResolver nestedResolver = nestedResolvers.get(hiveIndex); + if (nestedResolver != null) { + return nestedResolver; + } + else { + JsonNode child = root.get(String.valueOf(hiveIndex)); + checkCondition(child != null, HIVE_INVALID_METADATA, "Missed json value for hiveIndex: %s, root: %s", hiveIndex, root); + nestedResolver = new HiveThriftFieldIdResolver(child); + nestedResolvers.put(hiveIndex, nestedResolver); + return nestedResolver; + } + } + + @Override + public String toString() + { + return toStringHelper(this) + .add("root", root) + .add("nestedResolvers", nestedResolvers) + .add("thriftIds", thriftIds) + .toString(); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java new file mode 100644 index 0000000000000..c1c736a9f4536 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java @@ -0,0 +1,49 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.airlift.log.Logger; + +import java.io.IOException; +import java.util.Properties; + +public class HiveThriftFieldIdResolverFactory + implements ThriftFieldIdResolverFactory +{ + private static final Logger log = Logger.get(HiveThriftFieldIdResolverFactory.class); + private static final ObjectMapper objectMapper = new ObjectMapper(); + public static final String THRIFT_FIELD_ID_JSON = "thrift.field.id.json"; + // The default resolver which returns thrift id as hive id plus one + public static final ThriftFieldIdResolver HIVE_THRIFT_FIELD_ID_DEFAULT_RESOLVER = new HiveThriftFieldIdResolver(null); + + public ThriftFieldIdResolver createResolver(Properties schema) + { + String jsonData = schema.getProperty(THRIFT_FIELD_ID_JSON); + if (jsonData == null) { + return HIVE_THRIFT_FIELD_ID_DEFAULT_RESOLVER; + } + + try { + JsonNode root = objectMapper.readTree(jsonData); + return new HiveThriftFieldIdResolver(root); + } + catch (IOException e) { + log.debug(e, "Failed to create an optimized thrift id resolver, json string: %s, schema: %s. Will use a default resolver.", jsonData, schema); + } + + return HIVE_THRIFT_FIELD_ID_DEFAULT_RESOLVER; + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolver.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolver.java new file mode 100644 index 0000000000000..83047e1d953fb --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolver.java @@ -0,0 +1,20 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +public interface ThriftFieldIdResolver +{ + ThriftFieldIdResolver getNestedResolver(int hiveIndex); + short getThriftId(int hiveIndex); +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolverFactory.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolverFactory.java new file mode 100644 index 0000000000000..034308aaa569a --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftFieldIdResolverFactory.java @@ -0,0 +1,21 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import java.util.Properties; + +public interface ThriftFieldIdResolverFactory +{ + ThriftFieldIdResolver createResolver(Properties schema); +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java new file mode 100644 index 0000000000000..001994f7a7e4e --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java @@ -0,0 +1,50 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.twitter.elephantbird.mapreduce.io.ThriftWritable; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.Writable; +import org.apache.thrift.TException; + +import java.util.Properties; + +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_UNKNOWN_ERROR; +import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static org.apache.hadoop.hive.serde.Constants.SERIALIZATION_CLASS; + +public class ThriftGeneralDeserializer +{ + private static final String REQUIRED_SERIALIZATION_CLASS = ThriftGenericRow.class.getName(); + public ThriftGeneralDeserializer(Configuration conf, Properties properties) + { + String thriftClassName = properties.getProperty(SERIALIZATION_CLASS, null); + checkCondition(thriftClassName != null, HIVE_INVALID_METADATA, "Table or partition is missing Hive deserializer property: %s", SERIALIZATION_CLASS); + checkCondition(thriftClassName.equals(REQUIRED_SERIALIZATION_CLASS), HIVE_INVALID_METADATA, SERIALIZATION_CLASS + thriftClassName + " cannot match " + REQUIRED_SERIALIZATION_CLASS); + } + + public ThriftGenericRow deserialize(Writable writable, short[] thriftIds) + { + checkCondition(writable instanceof ThriftWritable, HIVE_UNKNOWN_ERROR, "Not an instance of ThriftWritable: " + writable); + ThriftGenericRow row = (ThriftGenericRow) ((ThriftWritable) writable).get(); + try { + row.parse(thriftIds); + } + catch (TException e) { + throw new IllegalStateException("ThriftGenericRow failed to parse values", e); + } + return row; + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java new file mode 100644 index 0000000000000..1f9690036dbf9 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java @@ -0,0 +1,95 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.facebook.presto.spi.PrestoException; +import com.twitter.elephantbird.mapred.input.DeprecatedFileInputFormatWrapper; +import com.twitter.elephantbird.mapreduce.input.MultiInputFormat; +import com.twitter.elephantbird.mapreduce.io.BinaryWritable; +import com.twitter.elephantbird.util.TypeRef; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.io.LongWritable; +import org.apache.hadoop.mapred.FileSplit; +import org.apache.hadoop.mapred.InputSplit; +import org.apache.hadoop.mapred.JobConf; +import org.apache.hadoop.mapred.RecordReader; +import org.apache.hadoop.mapred.Reporter; + +import java.io.IOException; + +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static com.facebook.presto.hive.HiveUtil.getLzopIndexPath; +import static com.facebook.presto.hive.HiveUtil.isLzopCompressedFile; +import static java.lang.String.format; +import static org.apache.hadoop.hive.serde.Constants.SERIALIZATION_CLASS; + +/** + * Mirror of com.twitter.elephantbird.mapred.input.HiveMultiInputFormat allows to pass the thriftClassName + * directly as a property of JobConfig and check lzo index existence when check splitability. + * PR for twitter/elephant-bird: + * https://github.com/twitter/elephant-bird/pull/481 + * https://github.com/twitter/elephant-bird/pull/485 + * Remove the class once #481 is included in a release + */ +@SuppressWarnings("deprecation") +public class ThriftGeneralInputFormat + extends DeprecatedFileInputFormatWrapper +{ + public ThriftGeneralInputFormat() + { + super(new MultiInputFormat()); + } + + private void initialize(FileSplit split, JobConf job) throws IOException + { + String thriftClassName = job.get(SERIALIZATION_CLASS); + checkCondition(thriftClassName != null, HIVE_INVALID_METADATA, "Table or partition is missing Hive deserializer property: %s", SERIALIZATION_CLASS); + + try { + Class thriftClass = job.getClassByName(thriftClassName); + setInputFormatInstance(new MultiInputFormat(new TypeRef(thriftClass) {})); + } + catch (ClassNotFoundException e) { + throw new PrestoException(HIVE_INVALID_METADATA, format("Failed getting class for %s", thriftClassName)); + } + } + + @Override + public boolean isSplitable(FileSystem fs, Path filename) + { + if (isLzopCompressedFile(filename)) { + Path indexFile = getLzopIndexPath(filename); + try { + return fs.exists(indexFile); + } + catch (IOException e) { + return false; + } + } + return super.isSplitable(fs, filename); + } + + @Override + public RecordReader getRecordReader( + InputSplit split, + JobConf job, + Reporter reporter) + throws IOException + { + initialize((FileSplit) split, job); + return super.getRecordReader(split, job, reporter); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java new file mode 100644 index 0000000000000..5b961f7d813ac --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java @@ -0,0 +1,241 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import io.airlift.log.Logger; +import org.apache.commons.lang.ArrayUtils; +import org.apache.thrift.TBase; +import org.apache.thrift.TException; +import org.apache.thrift.TFieldIdEnum; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.protocol.TField; +import org.apache.thrift.protocol.TList; +import org.apache.thrift.protocol.TMap; +import org.apache.thrift.protocol.TProtocol; +import org.apache.thrift.protocol.TProtocolUtil; +import org.apache.thrift.protocol.TSet; +import org.apache.thrift.protocol.TType; +import org.apache.thrift.transport.TMemoryInputTransport; +import org.apache.thrift.transport.TTransport; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +public class ThriftGenericRow + implements TBase +{ + private static final Logger log = Logger.get(ThriftGenericRow.class); + private final Map values = new HashMap<>(); + private byte[] buf; + private int off; + private int len; + + public ThriftGenericRow() + { + } + + public ThriftGenericRow(Map values) + { + this.values.putAll(values); + } + + public class Fields + implements TFieldIdEnum + { + private final short thriftId; + private final String fieldName; + + Fields(short thriftId, String fieldName) + { + this.thriftId = thriftId; + this.fieldName = fieldName; + } + + public short getThriftFieldId() + { + return thriftId; + } + + public String getFieldName() + { + return fieldName; + } + } + + public void read(TProtocol iprot) + throws TException + { + TTransport trans = iprot.getTransport(); + buf = trans.getBuffer(); + off = trans.getBufferPosition(); + TProtocolUtil.skip(iprot, TType.STRUCT); + len = trans.getBufferPosition() - off; + } + + public void parse() + throws TException + { + parse(null); + } + + public void parse(short[] thriftIds) + throws TException + { + Set idSet = thriftIds == null ? null : new HashSet(Arrays.asList(ArrayUtils.toObject(thriftIds))); + TMemoryInputTransport trans = new TMemoryInputTransport(buf, off, len); + TBinaryProtocol iprot = new TBinaryProtocol(trans); + TField field; + iprot.readStructBegin(); + while (true) { + field = iprot.readFieldBegin(); + if (field.type == TType.STOP) { + break; + } + if (idSet != null && !idSet.remove(Short.valueOf(field.id))) { + TProtocolUtil.skip(iprot, field.type); + } + else { + values.put(field.id, readElem(iprot, field.type)); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + } + + private Object readElem(TProtocol iprot, byte type) + throws TException + { + switch (type) { + case TType.BOOL: + return iprot.readBool(); + case TType.BYTE: + return iprot.readByte(); + case TType.I16: + return iprot.readI16(); + case TType.ENUM: + case TType.I32: + return iprot.readI32(); + case TType.I64: + return iprot.readI64(); + case TType.DOUBLE: + return iprot.readDouble(); + case TType.STRING: + return iprot.readString(); + case TType.STRUCT: + return readStruct(iprot); + case TType.LIST: + return readList(iprot); + case TType.SET: + return readSet(iprot); + case TType.MAP: + return readMap(iprot); + default: + TProtocolUtil.skip(iprot, type); + return null; + } + } + + private Object readStruct(TProtocol iprot) + throws TException + { + ThriftGenericRow elem = new ThriftGenericRow(); + elem.read(iprot); + elem.parse(); + return elem; + } + + private Object readList(TProtocol iprot) + throws TException + { + TList ilist = iprot.readListBegin(); + List listValue = new ArrayList<>(); + for (int i = 0; i < ilist.size; i++) { + listValue.add(readElem(iprot, ilist.elemType)); + } + iprot.readListEnd(); + return listValue; + } + + private Object readSet(TProtocol iprot) + throws TException + { + TSet iset = iprot.readSetBegin(); + List setValue = new ArrayList<>(); + for (int i = 0; i < iset.size; i++) { + setValue.add(readElem(iprot, iset.elemType)); + } + iprot.readSetEnd(); + return setValue; + } + + private Object readMap(TProtocol iprot) + throws TException + { + TMap imap = iprot.readMapBegin(); + Map mapValue = new HashMap<>(); + for (int i = 0; i < imap.size; i++) { + mapValue.put(readElem(iprot, imap.keyType), readElem(iprot, imap.valueType)); + } + iprot.readMapEnd(); + return mapValue; + } + + public Object getFieldValueForThriftId(short thriftId) + { + return values.get(thriftId); + } + + public ThriftGenericRow deepCopy() + { + return new ThriftGenericRow(values); + } + + public void clear() {} + + public Fields fieldForId(int fieldId) + { + return new Fields((short) fieldId, "dummy"); + } + + public Object getFieldValue(Fields field) + { + return values.get(field.thriftId); + } + + public boolean isSet(Fields field) + { + return values.containsKey(field.getThriftFieldId()); + } + + public void setFieldValue(Fields field, Object value) + { + values.put(field.getThriftFieldId(), value); + } + + public void write(TProtocol oprot) + throws TException + { + throw new UnsupportedOperationException("ThriftGenericRow.write is not supported."); + } + + public int compareTo(ThriftGenericRow other) + { + throw new UnsupportedOperationException("ThriftGenericRow.compareTo is not supported."); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java new file mode 100644 index 0000000000000..c17de71972c28 --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java @@ -0,0 +1,737 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.facebook.presto.hive.HiveColumnHandle; +import com.facebook.presto.hive.HiveErrorCode; +import com.facebook.presto.hive.HiveType; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.RecordCursor; +import com.facebook.presto.spi.block.Block; +import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.spi.type.Decimals; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.spi.type.TypeManager; +import io.airlift.log.Logger; +import io.airlift.slice.Slice; +import io.airlift.slice.Slices; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.common.type.HiveChar; +import org.apache.hadoop.hive.common.type.HiveDecimal; +import org.apache.hadoop.hive.common.type.HiveVarchar; +import org.apache.hadoop.io.Writable; +import org.apache.hadoop.mapred.RecordReader; +import org.joda.time.DateTimeZone; + +import java.io.IOException; +import java.math.BigInteger; +import java.sql.Date; +import java.sql.Timestamp; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.TimeUnit; + +import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; +import static com.facebook.presto.hive.HiveUtil.closeWithSuppression; +import static com.facebook.presto.hive.HiveUtil.isArrayType; +import static com.facebook.presto.hive.HiveUtil.isMapType; +import static com.facebook.presto.hive.HiveUtil.isRowType; +import static com.facebook.presto.hive.HiveUtil.isStructuralType; +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.spi.type.Chars.isCharType; +import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.spi.type.DateType.DATE; +import static com.facebook.presto.spi.type.Decimals.rescale; +import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.spi.type.IntegerType.INTEGER; +import static com.facebook.presto.spi.type.RealType.REAL; +import static com.facebook.presto.spi.type.SmallintType.SMALLINT; +import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.spi.type.TinyintType.TINYINT; +import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.spi.type.Varchars.isVarcharType; +import static com.facebook.presto.spi.type.Varchars.truncateToLength; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static java.lang.Float.floatToRawIntBits; +import static java.lang.Math.max; +import static java.lang.Math.min; +import static java.lang.String.format; +import static java.util.Objects.requireNonNull; + +class ThriftHiveRecordCursor + implements RecordCursor +{ + private static final Logger log = Logger.get(ThriftHiveRecordCursor.class); + private static final short NON_EXISTED_THRIFT_ID = (short) -1; + private final RecordReader recordReader; + private final K key; + private final V value; + + private final ThriftGeneralDeserializer deserializer; + + private final Type[] types; + private final HiveType[] hiveTypes; + private final int[] hiveIndexs; + private final short[] thriftIds; + + private final boolean[] loaded; + private final boolean[] booleans; + private final long[] longs; + private final double[] doubles; + private final Slice[] slices; + private final Object[] objects; + private final boolean[] nulls; + + private final Path path; + private final long start; + private final long totalBytes; + private final DateTimeZone hiveStorageTimeZone; + + private final ThriftFieldIdResolver thriftFieldIdResolver; + + private long completedBytes; + private ThriftGenericRow rowData; + private boolean closed; + + public ThriftHiveRecordCursor( + RecordReader recordReader, + Path path, + long start, + long totalBytes, + Properties splitSchema, + List columns, + DateTimeZone hiveStorageTimeZone, + TypeManager typeManager, + ThriftFieldIdResolver thriftFieldIdResolver) + { + requireNonNull(recordReader, "recordReader is null"); + requireNonNull(path, "path is null"); + checkArgument(start >= 0, "start is negative"); + checkArgument(totalBytes >= 0, "totalBytes is negative"); + requireNonNull(splitSchema, "splitSchema is null"); + requireNonNull(columns, "columns is null"); + requireNonNull(hiveStorageTimeZone, "hiveStorageTimeZone is null"); + requireNonNull(thriftFieldIdResolver, "thriftFieldIdResolver is null"); + + this.recordReader = recordReader; + this.path = path; + this.start = start; + this.totalBytes = totalBytes; + this.key = recordReader.createKey(); + this.value = recordReader.createValue(); + this.hiveStorageTimeZone = hiveStorageTimeZone; + this.thriftFieldIdResolver = thriftFieldIdResolver; + + this.deserializer = new ThriftGeneralDeserializer(new Configuration(false), splitSchema); + + int size = columns.size(); + + this.types = new Type[size]; + this.hiveTypes = new HiveType[size]; + this.hiveIndexs = new int[size]; + this.thriftIds = new short[size]; + + this.loaded = new boolean[size]; + this.booleans = new boolean[size]; + this.longs = new long[size]; + this.doubles = new double[size]; + this.slices = new Slice[size]; + this.objects = new Object[size]; + this.nulls = new boolean[size]; + + // initialize data columns + for (int i = 0; i < columns.size(); i++) { + HiveColumnHandle column = columns.get(i); + checkState(column.getColumnType() == REGULAR, "column type must be regular"); + + types[i] = typeManager.getType(column.getTypeSignature()); + hiveTypes[i] = column.getHiveType(); + hiveIndexs[i] = column.getHiveColumnIndex(); + thriftIds[i] = getThriftIdWithFailOver(thriftFieldIdResolver, hiveIndexs[i]); + } + + // close immediately if the number of totalBytes is zero + if (totalBytes == 0) { + close(); + } + } + + @Override + public long getCompletedBytes() + { + if (!closed) { + updateCompletedBytes(); + } + return completedBytes; + } + + @Override + public long getReadTimeNanos() + { + return 0; + } + + private void updateCompletedBytes() + { + try { + long newCompletedBytes = (long) (totalBytes * recordReader.getProgress()); + completedBytes = min(totalBytes, max(completedBytes, newCompletedBytes)); + } + catch (IOException ignored) { + } + } + + @Override + public Type getType(int field) + { + return types[field]; + } + + @Override + public boolean advanceNextPosition() + { + try { + if (closed || !recordReader.next(key, value)) { + close(); + return false; + } + + // reset loaded flags + Arrays.fill(loaded, false); + + // decode value + rowData = deserializer.deserialize(value, thriftIds); + + return true; + } + catch (IOException | RuntimeException e) { + closeWithSuppression(this, e); + throw new PrestoException(HIVE_CURSOR_ERROR, + format("Failed to read split: %s %s:%s, total bytes: %s, completed bytes: %s", + path, start, start + totalBytes, totalBytes, completedBytes), + e); + } + } + + @Override + public boolean getBoolean(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + validateType(fieldId, boolean.class); + if (!loaded[fieldId]) { + parseBooleanColumn(fieldId); + } + return booleans[fieldId]; + } + + private void parseBooleanColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + booleans[column] = (Boolean) fieldValue; + nulls[column] = false; + } + } + + @Override + public long getLong(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + validateType(fieldId, long.class); + if (!loaded[fieldId]) { + parseLongColumn(fieldId); + } + return longs[fieldId]; + } + + private void parseLongColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + longs[column] = getLongExpressedValue(fieldValue, hiveStorageTimeZone); + nulls[column] = false; + } + } + + private static long getLongExpressedValue(Object value, DateTimeZone hiveTimeZone) + { + if (value instanceof Date) { + long storageTime = ((Date) value).getTime(); + // convert date from VM current time zone to UTC + long utcMillis = storageTime + DateTimeZone.getDefault().getOffset(storageTime); + return TimeUnit.MILLISECONDS.toDays(utcMillis); + } + if (value instanceof Timestamp) { + // The Hive SerDe parses timestamps using the default time zone of + // this JVM, but the data might have been written using a different + // time zone. We need to convert it to the configured time zone. + + // the timestamp that Hive parsed using the JVM time zone + long parsedJvmMillis = ((Timestamp) value).getTime(); + + // remove the JVM time zone correction from the timestamp + DateTimeZone jvmTimeZone = DateTimeZone.getDefault(); + long hiveMillis = jvmTimeZone.convertUTCToLocal(parsedJvmMillis); + + // convert to UTC using the real time zone for the underlying data + long utcMillis = hiveTimeZone.convertLocalToUTC(hiveMillis, false); + + return utcMillis; + } + if (value instanceof Float) { + return floatToRawIntBits(((Float) value)); + } + return ((Number) value).longValue(); + } + + @Override + public double getDouble(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + validateType(fieldId, double.class); + if (!loaded[fieldId]) { + parseDoubleColumn(fieldId); + } + return doubles[fieldId]; + } + + private void parseDoubleColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + doubles[column] = ((Number) fieldValue).doubleValue(); + nulls[column] = false; + } + } + + @Override + public Slice getSlice(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + validateType(fieldId, Slice.class); + if (!loaded[fieldId]) { + parseStringColumn(fieldId); + } + return slices[fieldId]; + } + + private void parseStringColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + slices[column] = getSliceExpressedValue(fieldValue, types[column]); + nulls[column] = false; + } + } + + private static Slice getSliceExpressedValue(Object value, Type type) + { + Slice sliceValue; + if (value instanceof String) { + sliceValue = Slices.utf8Slice((String) value); + } + else if (value instanceof byte[]) { + sliceValue = Slices.wrappedBuffer((byte[]) value); + } + else if (value instanceof HiveVarchar) { + sliceValue = Slices.utf8Slice(((HiveVarchar) value).getValue()); + } + else if (value instanceof HiveChar) { + sliceValue = Slices.utf8Slice(((HiveChar) value).getValue()); + } + else if (value instanceof Integer) { + sliceValue = Slices.utf8Slice(value.toString()); + } + else { + throw new IllegalStateException("unsupported string field type: " + value.getClass().getName()); + } + if (isVarcharType(type)) { + sliceValue = truncateToLength(sliceValue, type); + } + if (isCharType(type)) { + sliceValue = truncateToLengthAndTrimSpaces(sliceValue, type); + } + + return sliceValue; + } + + private void parseDecimalColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + HiveDecimal decimal = (HiveDecimal) fieldValue; + DecimalType columnType = (DecimalType) types[column]; + BigInteger unscaledDecimal = rescale(decimal.unscaledValue(), decimal.scale(), columnType.getScale()); + + if (columnType.isShort()) { + longs[column] = unscaledDecimal.longValue(); + } + else { + slices[column] = Decimals.encodeUnscaledValue(unscaledDecimal); + } + nulls[column] = false; + } + } + + @Override + public Object getObject(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + validateType(fieldId, Block.class); + if (!loaded[fieldId]) { + parseObjectColumn(fieldId); + } + return objects[fieldId]; + } + + private void parseObjectColumn(int column) + { + loaded[column] = true; + + Object fieldValue = rowData.getFieldValueForThriftId(thriftIds[column]); + + if (fieldValue == null) { + nulls[column] = true; + } + else { + ThriftFieldIdResolver resolver = thriftFieldIdResolver.getNestedResolver(hiveIndexs[column]); + objects[column] = getBlockObject(types[column], resolver, fieldValue, hiveStorageTimeZone); + nulls[column] = false; + } + } + + @Override + public boolean isNull(int fieldId) + { + checkState(!closed, "Cursor is closed"); + + if (!loaded[fieldId]) { + parseColumn(fieldId); + } + return nulls[fieldId]; + } + + private void parseColumn(int column) + { + Type type = types[column]; + try { + parseColumn(column, type); + } + catch (ClassCastException cause) { + Object rawValue = rowData.getFieldValueForThriftId(thriftIds[column]); + String actualTypeName = rawValue.getClass().getTypeName(); + throw new PrestoException( + HiveErrorCode.HIVE_BAD_DATA, + String.format("Schema mismatched on column %d: expected type is %s, but actual type is %s, value is %s", + column, type.getDisplayName(), actualTypeName, rawValue), + cause); + } + } + + private void parseColumn(int column, Type type) + { + if (BOOLEAN.equals(type)) { + parseBooleanColumn(column); + } + else if (BIGINT.equals(type)) { + parseLongColumn(column); + } + else if (INTEGER.equals(type)) { + parseLongColumn(column); + } + else if (SMALLINT.equals(type)) { + parseLongColumn(column); + } + else if (TINYINT.equals(type)) { + parseLongColumn(column); + } + else if (REAL.equals(type)) { + parseLongColumn(column); + } + else if (DOUBLE.equals(type)) { + parseDoubleColumn(column); + } + else if (isVarcharType(type) || VARBINARY.equals(type)) { + parseStringColumn(column); + } + else if (isCharType(type)) { + parseStringColumn(column); + } + else if (isStructuralType(hiveTypes[column])) { + parseObjectColumn(column); + } + else if (DATE.equals(type)) { + parseLongColumn(column); + } + else if (TIMESTAMP.equals(type)) { + parseLongColumn(column); + } + else if (type instanceof DecimalType) { + parseDecimalColumn(column); + } + else { + throw new UnsupportedOperationException("Unsupported column type: " + type); + } + } + + private void validateType(int fieldId, Class type) + { + if (!types[fieldId].getJavaType().equals(type)) { + // we don't use Preconditions.checkArgument because it requires boxing fieldId, which affects inner loop performance + throw new IllegalArgumentException(String.format("Expected field to be %s, actual %s (field %s)", type, types[fieldId], fieldId)); + } + } + + @Override + public void close() + { + // some hive input formats are broken and bad things can happen if you close them multiple times + if (closed) { + return; + } + closed = true; + + updateCompletedBytes(); + + try { + recordReader.close(); + } + catch (IOException e) { + throw new RuntimeException("Error closing thrift record reader", e); + } + } + + private static Block getBlockObject(Type type, ThriftFieldIdResolver resolver, Object object, DateTimeZone hiveStorageTimeZone) + { + return requireNonNull(serializeObject(type, resolver, null, object, hiveStorageTimeZone), "serialized result is null"); + } + + private static Block serializeObject(Type type, ThriftFieldIdResolver resolver, BlockBuilder builder, Object object, DateTimeZone hiveStorageTimeZone) + { + if (object == null) { + requireNonNull(builder, "parent builder is null").appendNull(); + return null; + } + if (!isStructuralType(type)) { + serializePrimitive(type, resolver, builder, object, hiveStorageTimeZone); + return null; + } + else if (isArrayType(type)) { + return serializeList(type, resolver, builder, object, hiveStorageTimeZone); + } + else if (isMapType(type)) { + return serializeMap(type, resolver, builder, object, hiveStorageTimeZone); + } + else if (isRowType(type)) { + return serializeStruct(type, resolver, builder, object, hiveStorageTimeZone); + } + throw new RuntimeException("Unknown object type: " + type); + } + + private static Block serializeList(Type type, ThriftFieldIdResolver resolver, BlockBuilder builder, Object object, DateTimeZone hiveStorageTimeZone) + { + List list = (List) requireNonNull(object, "object is null"); + List typeParameters = type.getTypeParameters(); + checkArgument(typeParameters.size() == 1, "list must have exactly 1 type parameter"); + Type elementType = typeParameters.get(0); + ThriftFieldIdResolver elementResolver = resolver.getNestedResolver(0); + BlockBuilder currentBuilder; + if (builder != null) { + currentBuilder = builder.beginBlockEntry(); + } + else { + currentBuilder = elementType.createBlockBuilder(null, list.size()); + } + + for (Object element : list) { + serializeObject(elementType, elementResolver, currentBuilder, element, hiveStorageTimeZone); + } + + if (builder != null) { + builder.closeEntry(); + return null; + } + else { + Block resultBlock = currentBuilder.build(); + return resultBlock; + } + } + + private static Block serializeMap(Type type, ThriftFieldIdResolver resolver, BlockBuilder builder, Object object, DateTimeZone hiveStorageTimeZone) + { + Map map = (Map) requireNonNull(object, "object is null"); + List typeParameters = type.getTypeParameters(); + checkArgument(typeParameters.size() == 2, "map must have exactly 2 type parameter"); + Type keyType = typeParameters.get(0); + Type valueType = typeParameters.get(1); + ThriftFieldIdResolver keyResolver = resolver.getNestedResolver(0); + ThriftFieldIdResolver valueResolver = resolver.getNestedResolver(1); + boolean builderSynthesized = false; + if (builder == null) { + builderSynthesized = true; + builder = type.createBlockBuilder(null, 1); + } + BlockBuilder currentBuilder = builder.beginBlockEntry(); + + for (Map.Entry entry : map.entrySet()) { + // Hive skips map entries with null keys + if (entry.getKey() != null) { + serializeObject(keyType, keyResolver, currentBuilder, entry.getKey(), hiveStorageTimeZone); + serializeObject(valueType, valueResolver, currentBuilder, entry.getValue(), hiveStorageTimeZone); + } + } + + builder.closeEntry(); + if (builderSynthesized) { + return (Block) type.getObject(builder, 0); + } + else { + return null; + } + } + + private static Block serializeStruct(Type type, ThriftFieldIdResolver resolver, BlockBuilder builder, Object object, DateTimeZone hiveStorageTimeZone) + { + ThriftGenericRow structData = (ThriftGenericRow) requireNonNull(object, "object is null"); + List typeParameters = type.getTypeParameters(); + + boolean builderSynthesized = false; + if (builder == null) { + builderSynthesized = true; + builder = type.createBlockBuilder(null, 1); + } + BlockBuilder currentBuilder = builder.beginBlockEntry(); + + for (int i = 0; i < typeParameters.size(); i++) { + Object fieldValue = structData.getFieldValueForThriftId(getThriftIdWithFailOver(resolver, i)); + if (fieldValue == null) { + currentBuilder.appendNull(); + } + else { + serializeObject(typeParameters.get(i), resolver.getNestedResolver(i), currentBuilder, fieldValue, hiveStorageTimeZone); + } + } + + builder.closeEntry(); + if (builderSynthesized) { + return (Block) type.getObject(builder, 0); + } + else { + return null; + } + } + + private static void serializePrimitive(Type type, ThriftFieldIdResolver resolver, BlockBuilder builder, Object object, DateTimeZone hiveStorageTimeZone) + { + requireNonNull(builder, "parent builder is null"); + requireNonNull(object, "object is null"); + + if (BOOLEAN.equals(type)) { + BOOLEAN.writeBoolean(builder, (Boolean) object); + } + else if (BIGINT.equals(type)) { + BIGINT.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (INTEGER.equals(type)) { + INTEGER.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (SMALLINT.equals(type)) { + SMALLINT.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (TINYINT.equals(type)) { + TINYINT.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (REAL.equals(type)) { + REAL.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (DOUBLE.equals(type)) { + DOUBLE.writeDouble(builder, ((Number) object).doubleValue()); + } + else if (isVarcharType(type) || VARBINARY.equals(type) || isCharType(type)) { + type.writeSlice(builder, getSliceExpressedValue(object, type)); + } + else if (DATE.equals(type)) { + DATE.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (TIMESTAMP.equals(type)) { + TIMESTAMP.writeLong(builder, getLongExpressedValue(object, hiveStorageTimeZone)); + } + else if (type instanceof DecimalType) { + HiveDecimal decimal = (HiveDecimal) object; + DecimalType decimalType = (DecimalType) type; + BigInteger unscaledDecimal = rescale(decimal.unscaledValue(), decimal.scale(), decimalType.getScale()); + if (decimalType.isShort()) { + decimalType.writeLong(builder, unscaledDecimal.longValue()); + } + else { + decimalType.writeSlice(builder, Decimals.encodeUnscaledValue(unscaledDecimal)); + } + } + else { + throw new UnsupportedOperationException("Unsupported primitive type: " + type); + } + } + + private static short getThriftIdWithFailOver(ThriftFieldIdResolver thriftFieldIdResolver, int hiveIndex) + { + try { + return thriftFieldIdResolver.getThriftId(hiveIndex); + } + catch (PrestoException e) { + return NON_EXISTED_THRIFT_ID; + } + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java new file mode 100644 index 0000000000000..603cffabf111a --- /dev/null +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java @@ -0,0 +1,167 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.facebook.presto.hive.HdfsEnvironment; +import com.facebook.presto.hive.HiveColumnHandle; +import com.facebook.presto.hive.HiveRecordCursorProvider; +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.RecordCursor; +import com.facebook.presto.spi.predicate.TupleDomain; +import com.facebook.presto.spi.type.TypeManager; +import com.google.common.collect.ImmutableSet; +import com.hadoop.compression.lzo.LzoIndex; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.serde.serdeConstants; +import org.apache.hadoop.io.Writable; +import org.apache.hadoop.mapred.RecordReader; +import org.joda.time.DateTimeZone; + +import javax.inject.Inject; + +import java.io.IOException; +import java.util.List; +import java.util.Optional; +import java.util.Properties; +import java.util.Set; + +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveStorageFormat.THRIFTBINARY; +import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static com.facebook.presto.hive.HiveUtil.createRecordReader; +import static com.facebook.presto.hive.HiveUtil.getDeserializerClassName; +import static com.facebook.presto.hive.HiveUtil.getLzopIndexPath; +import static com.facebook.presto.hive.HiveUtil.isLzopCompressedFile; +import static java.util.Objects.requireNonNull; + +public class ThriftHiveRecordCursorProvider + implements HiveRecordCursorProvider +{ + private static final String THRIFT_GENERIC_ROW = ThriftGenericRow.class.getName(); + private static final Set THRIFT_SERDE_CLASS_NAMES = ImmutableSet.builder() + .add(ThriftGeneralDeserializer.class.getName()) + .add(THRIFTBINARY.getSerDe()) + .build(); + private final HdfsEnvironment hdfsEnvironment; + private final ThriftFieldIdResolverFactory thriftFieldIdResolverFactory; + + @Inject + public ThriftHiveRecordCursorProvider(HdfsEnvironment hdfsEnvironment, ThriftFieldIdResolverFactory thriftFieldIdResolverFactory) + { + this.hdfsEnvironment = requireNonNull(hdfsEnvironment, "hdfsEnvironment is null"); + this.thriftFieldIdResolverFactory = requireNonNull(thriftFieldIdResolverFactory, "thriftFieldIdResolverFactory is null"); + } + + @Override + public Optional createRecordCursor( + Configuration configuration, + ConnectorSession session, + Path path, + long start, + long length, + long fileSize, + Properties schema, + List columns, + TupleDomain effectivePredicate, + DateTimeZone hiveStorageTimeZone, + TypeManager typeManager, + boolean s3SelectPushdownEnabled) + { + if (!THRIFT_SERDE_CLASS_NAMES.contains(getDeserializerClassName(schema))) { + return Optional.empty(); + } + + // We only allow the table which specified its serialization class is compatible to + // our thrift general row, if the SerDe is LazyBinarySerDe. + if (THRIFTBINARY.getSerDe().equals(getDeserializerClassName(schema)) && !THRIFT_GENERIC_ROW.equals(getSerializationClassName(schema))) { + return Optional.empty(); + } + + setPropertyIfUnset(schema, "elephantbird.mapred.input.bad.record.check.only.in.close", Boolean.toString(false)); + setPropertyIfUnset(schema, "elephantbird.mapred.input.bad.record.threshold", Float.toString(0.0f)); + + long originalStart = start; + long originalLength = length; + + // re-align split range + if (isLzopCompressedFile(path)) { + LzoIndex index = new LzoIndex(); + try { + index = LzoIndex.readIndex(hdfsEnvironment.getFileSystem(session.getUser(), getLzopIndexPath(path), configuration), path); + } + catch (IOException ignored) { + // ignored + } + + // re-align split start + if (index.isEmpty() && start != 0) { + // empty index and split not start from beginning + start = LzoIndex.NOT_FOUND; + } + if (!index.isEmpty()) { + // align start based on index + start = index.alignSliceStartToIndex(start, start + length); + } + + // re-align split end + if (start == LzoIndex.NOT_FOUND) { + // split start cannot be find, then we should skip this split + start = 0; + length = 0; + } + else { + // if index is empty but start is not NOT_FOUND, read the whole file, otherwise align split end. + length = index.isEmpty() ? fileSize : + (Math.min(index.alignSliceEndToIndex(originalStart + length, fileSize), fileSize) - start); + } + } + + long finalStart = start; + long finalLength = length; + RecordReader recordReader = hdfsEnvironment.doAs(session.getUser(), + () -> createRecordReader(configuration, path, finalStart, finalLength, schema, columns)); + + return Optional.of(new ThriftHiveRecordCursor<>( + genericRecordReader(recordReader), + path, + start, + length, + schema, + columns, + hiveStorageTimeZone, + typeManager, + thriftFieldIdResolverFactory.createResolver(schema))); + } + + @SuppressWarnings("unchecked") + private static RecordReader genericRecordReader(RecordReader recordReader) + { + return (RecordReader) recordReader; + } + + private static void setPropertyIfUnset(Properties schema, String key, String value) + { + if (schema.getProperty(key) == null) { + schema.setProperty(key, value); + } + } + + private static String getSerializationClassName(Properties schema) + { + String name = schema.getProperty(serdeConstants.SERIALIZATION_CLASS); + checkCondition(name != null, HIVE_INVALID_METADATA, "Table or partition is missing Hive property: %s", serdeConstants.SERIALIZATION_CLASS); + return name; + } +} diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index 565d0ab882db5..630b6c4c953cb 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -216,6 +216,7 @@ import static com.facebook.presto.hive.HiveStorageFormat.RCTEXT; import static com.facebook.presto.hive.HiveStorageFormat.SEQUENCEFILE; import static com.facebook.presto.hive.HiveStorageFormat.TEXTFILE; +import static com.facebook.presto.hive.HiveStorageFormat.THRIFTBINARY; import static com.facebook.presto.hive.HiveTableProperties.BUCKETED_BY_PROPERTY; import static com.facebook.presto.hive.HiveTableProperties.BUCKET_COUNT_PROPERTY; import static com.facebook.presto.hive.HiveTableProperties.PARTITIONED_BY_PROPERTY; @@ -481,6 +482,7 @@ private static RowType toRowType(List columns) }).collect(toList())) .build(); + protected Set createTableFormats = difference(ImmutableSet.copyOf(HiveStorageFormat.values()), ImmutableSet.of(AVRO, THRIFTBINARY)); private static final SubfieldExtractor SUBFIELD_EXTRACTOR = new SubfieldExtractor(FUNCTION_RESOLUTION, ROW_EXPRESSION_SERVICE.getExpressionOptimizer(), SESSION); private static final TypeProvider TYPE_PROVIDER_AFTER = TypeProvider.copyOf(MISMATCH_SCHEMA_TABLE_AFTER.stream() diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index 44eaea9dea901..32228e409a4f8 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -34,6 +34,10 @@ import com.facebook.presto.spi.RecordPageSource; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.testing.TestingConnectorSession; +import com.facebook.presto.twitter.hive.thrift.HiveThriftFieldIdResolverFactory; +import com.facebook.presto.twitter.hive.thrift.ThriftGenericRow; +import com.facebook.presto.twitter.hive.thrift.ThriftHiveRecordCursorProvider; +import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -41,6 +45,7 @@ import io.airlift.compress.lzo.LzoCodec; import io.airlift.compress.lzo.LzopCodec; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.common.type.HiveVarchar; import org.apache.hadoop.hive.serde2.objectinspector.ListObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector; @@ -59,6 +64,7 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Optional; import java.util.OptionalInt; @@ -83,6 +89,7 @@ import static com.facebook.presto.hive.HiveStorageFormat.RCTEXT; import static com.facebook.presto.hive.HiveStorageFormat.SEQUENCEFILE; import static com.facebook.presto.hive.HiveStorageFormat.TEXTFILE; +import static com.facebook.presto.hive.HiveStorageFormat.THRIFTBINARY; import static com.facebook.presto.hive.HiveTestUtils.HDFS_ENVIRONMENT; import static com.facebook.presto.hive.HiveTestUtils.HIVE_CLIENT_CONFIG; import static com.facebook.presto.hive.HiveTestUtils.ROW_EXPRESSION_SERVICE; @@ -92,11 +99,16 @@ import static com.facebook.presto.tests.StructuralTestUtil.arrayBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.mapBlockOf; import static com.facebook.presto.tests.StructuralTestUtil.rowBlockOf; +import static com.google.common.base.Predicates.not; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.transform; import static io.airlift.slice.Slices.utf8Slice; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; +import static org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.FILE_INPUT_FORMAT; +import static org.apache.hadoop.hive.serde.serdeConstants.SERIALIZATION_CLASS; +import static org.apache.hadoop.hive.serde.serdeConstants.SERIALIZATION_LIB; import static org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory.getStandardListObjectInspector; import static org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory.getStandardMapObjectInspector; import static org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory.getStandardStructObjectInspector; @@ -464,6 +476,44 @@ public void testDwrfOptimizedWriter(int rowCount) .isReadableByPageSource(new DwrfBatchPageSourceFactory(TYPE_MANAGER, HIVE_CLIENT_CONFIG, HDFS_ENVIRONMENT, STATS, new StorageOrcFileTailSource(), new StorageStripeMetadataSource())); } + @Test(dataProvider = "rowCount") + public void testLZOThrift(int rowCount) + throws Exception + { + RowType nameType = RowType.anonymous(ImmutableList.of(createUnboundedVarcharType(), createUnboundedVarcharType())); + RowType phoneType = RowType.anonymous(ImmutableList.of(createUnboundedVarcharType(), createUnboundedVarcharType())); + RowType personType = RowType.anonymous(ImmutableList.of(nameType, INTEGER, createUnboundedVarcharType(), new ArrayType(phoneType))); + + List testColumns = ImmutableList.of( + new TestColumn( + "persons", + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("name", "id", "email", "phones"), + ImmutableList.of( + getStandardStructObjectInspector( + ImmutableList.of("first_name", "last_name"), + ImmutableList.of(javaStringObjectInspector, javaStringObjectInspector)), + javaIntObjectInspector, + javaStringObjectInspector, + getStandardListObjectInspector( + getStandardStructObjectInspector( + ImmutableList.of("number", "type"), + ImmutableList.of(javaStringObjectInspector, javaStringObjectInspector)))))), + null, + arrayBlockOf(personType, + rowBlockOf(ImmutableList.of(nameType, INTEGER, createUnboundedVarcharType(), new ArrayType(phoneType)), + rowBlockOf(ImmutableList.of(createUnboundedVarcharType(), createUnboundedVarcharType()), "Bob", "Roberts"), + 0, + "bob.roberts@example.com", + arrayBlockOf(phoneType, rowBlockOf(ImmutableList.of(createUnboundedVarcharType(), createUnboundedVarcharType()), "1234567890", null)))))); + + File file = new File(this.getClass().getClassLoader().getResource("addressbook.thrift.lzo").getPath()); + FileSplit split = new FileSplit(new Path(file.getAbsolutePath()), 0, file.length(), new String[0]); + HiveRecordCursorProvider cursorProvider = new ThriftHiveRecordCursorProvider(HDFS_ENVIRONMENT, new HiveThriftFieldIdResolverFactory()); + testCursorProvider(cursorProvider, split, THRIFTBINARY, testColumns, SESSION, 1); + } + @Test public void testTruncateVarcharColumn() throws Exception @@ -821,6 +871,15 @@ private void testCursorProvider(HiveRecordCursorProvider cursorProvider, ConnectorSession session, int rowCount) { + HashMap serdeParameters = new HashMap<>(); + serdeParameters.put(FILE_INPUT_FORMAT, storageFormat.getInputFormat()); + serdeParameters.put(SERIALIZATION_LIB, storageFormat.getSerDe()); + serdeParameters.put("columns", Joiner.on(',').join(transform(filter(testColumns, not(TestColumn::isPartitionKey)), TestColumn::getName))); + serdeParameters.put("columns.types", Joiner.on(',').join(transform(filter(testColumns, not(TestColumn::isPartitionKey)), TestColumn::getType))); + if (storageFormat.equals(THRIFTBINARY)) { + serdeParameters.put(SERIALIZATION_CLASS, ThriftGenericRow.class.getName()); + } + List partitionKeys = testColumns.stream() .filter(TestColumn::isPartitionKey) .map(input -> new HivePartitionKey(input.getName(), (String) input.getWriteValue())) @@ -834,6 +893,9 @@ private void testCursorProvider(HiveRecordCursorProvider cursorProvider, Configuration configuration = new Configuration(); configuration.set("io.compression.codecs", LzoCodec.class.getName() + "," + LzopCodec.class.getName()); + if (storageFormat.equals(THRIFTBINARY)) { + configuration.set("io.compression.codecs", "com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec"); + } Optional pageSource = HivePageSourceProvider.createHivePageSource( ImmutableSet.of(cursorProvider), ImmutableSet.of(), diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java index dc512059b2a8a..c990fce0d2bff 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveIntegrationSmokeTest.java @@ -4926,8 +4926,62 @@ private static ConnectorSession getConnectorSession(Session session) private void testWithAllStorageFormats(BiConsumer test) { - for (HiveStorageFormat storageFormat : HiveStorageFormat.values()) { - test.accept(getSession(), storageFormat); + for (TestingHiveStorageFormat storageFormat : getAllTestingHiveStorageFormat()) { + testWithStorageFormat(storageFormat, test); + } + } + + private static void testWithStorageFormat(TestingHiveStorageFormat storageFormat, BiConsumer test) + { + requireNonNull(storageFormat, "storageFormat is null"); + requireNonNull(test, "test is null"); + Session session = storageFormat.getSession(); + try { + test.accept(session, storageFormat.getFormat()); + } + catch (Exception | AssertionError e) { + fail(format("Failure for format %s with properties %s", storageFormat.getFormat(), session.getConnectorProperties()), e); + } + } + + private List getAllTestingHiveStorageFormat() + { + Session session = getSession(); + ImmutableList.Builder formats = ImmutableList.builder(); + for (HiveStorageFormat hiveStorageFormat : HiveStorageFormat.values()) { + if (hiveStorageFormat.equals(HiveStorageFormat.THRIFTBINARY)) { + continue; + } + formats.add(new TestingHiveStorageFormat(session, hiveStorageFormat)); + } + formats.add(new TestingHiveStorageFormat( + Session.builder(session).setCatalogSessionProperty(session.getCatalog().get(), "orc_optimized_writer_enabled", "true").build(), + HiveStorageFormat.ORC)); + formats.add(new TestingHiveStorageFormat( + Session.builder(session).setCatalogSessionProperty(session.getCatalog().get(), "orc_optimized_writer_enabled", "true").build(), + HiveStorageFormat.DWRF)); + return formats.build(); + } + + private static class TestingHiveStorageFormat + { + private final Session session; + private final HiveStorageFormat format; + + TestingHiveStorageFormat(Session session, HiveStorageFormat format) + { + this.session = requireNonNull(session, "session is null"); + this.format = requireNonNull(format, "format is null"); + } + + public Session getSession() + { + return session; + } + + public HiveStorageFormat getFormat() + { + return format; } } } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java index a287c0f9edcdb..1af5b1794dad1 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHivePageSink.java @@ -113,6 +113,9 @@ public void testAllFormats() try { ExtendedHiveMetastore metastore = createTestingFileHiveMetastore(new File(tempDir, "metastore")); for (HiveStorageFormat format : HiveStorageFormat.values()) { + if (format.equals(HiveStorageFormat.THRIFTBINARY)) { + continue; + } config.setHiveStorageFormat(format); config.setCompressionCodec(NONE); long uncompressedLength = writeTestFile(config, metastoreClientConfig, metastore, makeFileName(tempDir, config)); diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/thrift/TestHiveThriftFieldIdResolver.java b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/thrift/TestHiveThriftFieldIdResolver.java new file mode 100644 index 0000000000000..6342a0c088e95 --- /dev/null +++ b/presto-hive/src/test/java/com/facebook/presto/twitter/hive/thrift/TestHiveThriftFieldIdResolver.java @@ -0,0 +1,111 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import com.facebook.presto.spi.PrestoException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.Test; + +import java.util.Map; +import java.util.Properties; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertThrows; + +@Test +public class TestHiveThriftFieldIdResolver +{ + private static final Map STRUCT_FIELD_ID_AS_MAP = ImmutableMap.of( + "0", (short) 1, + "1", (short) 2, + "id", (short) 4); + + private static final Map LIST_FIELD_ID_AS_MAP = ImmutableMap.of( + "0", STRUCT_FIELD_ID_AS_MAP, + "id", (short) 5); + + private static final Map VERBOSE_PRIMARY_FIELD_ID_AS_MAP = ImmutableMap.of( + "id", (short) 6); + + private static final Map THRIFT_FIELD_ID_JSON_AS_MAP = ImmutableMap.builder() + .put("0", (short) 1) + .put("1", (short) 3) + .put("2", STRUCT_FIELD_ID_AS_MAP) + .put("3", LIST_FIELD_ID_AS_MAP) + .put("4", VERBOSE_PRIMARY_FIELD_ID_AS_MAP) + .build(); + + private final ObjectMapper objectMapper = new ObjectMapper(); + private final ThriftFieldIdResolverFactory resolverFactory = new HiveThriftFieldIdResolverFactory(); + + @Test + public void testDefaultResolver() + throws Exception + { + ThriftFieldIdResolver defaultResolver = resolverFactory.createResolver(new Properties()); + + for (int i = 0; i <= 5; ++i) { + assertEquals(defaultResolver.getThriftId(i), i + 1); + assertEquals(defaultResolver.getNestedResolver(i), defaultResolver); + } + for (int i = 5; i >= 0; --i) { + assertEquals(defaultResolver.getThriftId(i), i + 1); + assertEquals(defaultResolver.getNestedResolver(i), defaultResolver); + } + } + + @Test + public void testOptimizedResolver() + throws Exception + { + String json = objectMapper.writeValueAsString(THRIFT_FIELD_ID_JSON_AS_MAP); + Properties schema = new Properties(); + schema.setProperty(HiveThriftFieldIdResolverFactory.THRIFT_FIELD_ID_JSON, json); + ThriftFieldIdResolver resolver = resolverFactory.createResolver(schema); + + // primary field + assertEquals(resolver.getThriftId(0), THRIFT_FIELD_ID_JSON_AS_MAP.get("0")); + // discrete field + assertEquals(resolver.getThriftId(1), THRIFT_FIELD_ID_JSON_AS_MAP.get("1")); + + // nested field + ThriftFieldIdResolver nestedResolver = resolver.getNestedResolver(2); + Map field = (Map) THRIFT_FIELD_ID_JSON_AS_MAP.get("2"); + assertEquals(resolver.getThriftId(2), field.get("id")); + assertEquals(nestedResolver.getThriftId(0), field.get("0")); + assertEquals(nestedResolver.getThriftId(1), field.get("1")); + + // non-nested non-primary field + nestedResolver = resolver.getNestedResolver(3); + field = (Map) THRIFT_FIELD_ID_JSON_AS_MAP.get("3"); + assertEquals(resolver.getThriftId(3), field.get("id")); + + // non-primary nested field + nestedResolver = resolver.getNestedResolver(3); + field = (Map) THRIFT_FIELD_ID_JSON_AS_MAP.get("3"); + nestedResolver = nestedResolver.getNestedResolver(0); + field = (Map) field.get("0"); + assertEquals(nestedResolver.getThriftId(0), field.get("0")); + assertEquals(nestedResolver.getThriftId(1), field.get("1")); + + // verbose primary field + field = (Map) THRIFT_FIELD_ID_JSON_AS_MAP.get("4"); + assertEquals(resolver.getThriftId(4), field.get("id")); + + // non-existing field + assertThrows(PrestoException.class, () -> resolver.getThriftId(5)); + assertThrows(PrestoException.class, () -> resolver.getNestedResolver(5)); + } +} diff --git a/presto-hive/src/test/resources/addressbook.thrift.lzo b/presto-hive/src/test/resources/addressbook.thrift.lzo new file mode 100644 index 0000000000000000000000000000000000000000..bc982749d3ff979cd0fe53d30ca3ad1dc92727d4 GIT binary patch literal 204 zcmeD5iSlRQ<&xqO5Ku7SbYNy@0E5OQk&LpoV5Z_Hrnx}IN+6!)t$E`rTf|u(%}sm4 zXDSx%{XZ2b%E2h4m7JfeS5lr?Qj%JvS5TB%T#~O>l2MeIR#Kdtn3JgIn358}#8K>& zpPwz2%Fn>a6Tue5z{t(P;L6C%%bLW>#N@`v9>m6!TExW5z%i4Nft8gxj6pn!ja9E` s2{W5RYDHphK~AckJ0Cv-O9ST?4h}9uBV!X&Gjj_|gAhhRpeuj?0Lut2L;wH) literal 0 HcmV?d00001 From fc2b72983bb5da5489127c9169349cefbe4e308b Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Thu, 14 Nov 2019 23:54:14 -0800 Subject: [PATCH 088/129] Port non-secured request bypass (#223) --- .../server/security/AuthenticationFilter.java | 8 +++++--- .../presto/server/security/SecurityConfig.java | 15 +++++++++++++++ .../server/security/ServerSecurityModule.java | 1 + .../server/security/TestSecurityConfig.java | 7 +++++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java index d7b6c1a4a64fb..e1fbd39cfcac7 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java @@ -44,11 +44,13 @@ public class AuthenticationFilter implements Filter { private final List authenticators; + private final String httpAuthenticationPathRegex; @Inject - public AuthenticationFilter(List authenticators) + public AuthenticationFilter(List authenticators, SecurityConfig securityConfig) { this.authenticators = ImmutableList.copyOf(authenticators); + this.httpAuthenticationPathRegex = requireNonNull(securityConfig.getHttpAuthenticationPathRegex(), "httpAuthenticationPathRegex is null"); } @Override @@ -64,8 +66,8 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; - // skip authentication if non-secure or not configured - if (!request.isSecure() || authenticators.isEmpty()) { + // skip authentication if (not configured) or (non-secure and not match + if (authenticators.isEmpty() || (!request.isSecure() && !request.getPathInfo().matches(httpAuthenticationPathRegex))) { nextFilter.doFilter(request, response); return; } diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java index 31849ea562327..6aac8085eb109 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java @@ -32,6 +32,7 @@ public class SecurityConfig private static final Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings(); private List authenticationTypes = ImmutableList.of(); + private String httpAuthenticationPathRegex = "^\b$"; public enum AuthenticationType { @@ -67,4 +68,18 @@ public SecurityConfig setAuthenticationTypes(String types) .collect(toImmutableList()); return this; } + + @NotNull + public String getHttpAuthenticationPathRegex() + { + return httpAuthenticationPathRegex; + } + + @Config("http-server.http.authentication.path.regex") + @ConfigDescription("Regex of path that needs to be authenticated for non-secured http request") + public SecurityConfig setHttpAuthenticationPathRegex(String regex) + { + httpAuthenticationPathRegex = regex; + return this; + } } diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/ServerSecurityModule.java b/presto-main/src/main/java/com/facebook/presto/server/security/ServerSecurityModule.java index c1c98d020737c..802a17e01d08d 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/ServerSecurityModule.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/ServerSecurityModule.java @@ -44,6 +44,7 @@ protected void setup(Binder binder) .to(AuthenticationFilter.class).in(Scopes.SINGLETON); binder.bind(PasswordAuthenticatorManager.class).in(Scopes.SINGLETON); + configBinder(binder).bindConfig(SecurityConfig.class); List authTypes = buildConfigObject(SecurityConfig.class).getAuthenticationTypes(); Multibinder authBinder = newSetBinder(binder, Authenticator.class); diff --git a/presto-main/src/test/java/com/facebook/presto/server/security/TestSecurityConfig.java b/presto-main/src/test/java/com/facebook/presto/server/security/TestSecurityConfig.java index 40fbd9e71b2d3..c68487ad041e8 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/security/TestSecurityConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/server/security/TestSecurityConfig.java @@ -29,7 +29,8 @@ public class TestSecurityConfig public void testDefaults() { ConfigAssertions.assertRecordedDefaults(ConfigAssertions.recordDefaults(SecurityConfig.class) - .setAuthenticationTypes("")); + .setAuthenticationTypes("") + .setHttpAuthenticationPathRegex("^\b$")); } @Test @@ -37,10 +38,12 @@ public void testExplicitPropertyMappings() { Map properties = new ImmutableMap.Builder() .put("http-server.authentication.type", "KERBEROS,PASSWORD") + .put("http-server.http.authentication.path.regex", "^/v1/statement") .build(); SecurityConfig expected = new SecurityConfig() - .setAuthenticationTypes(ImmutableList.of(KERBEROS, PASSWORD)); + .setAuthenticationTypes(ImmutableList.of(KERBEROS, PASSWORD)) + .setHttpAuthenticationPathRegex("^/v1/statement"); ConfigAssertions.assertFullMapping(properties, expected); } From 7701f21f247d0afcf4f3ca014481ed49c1f895f2 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Sat, 16 Nov 2019 18:55:57 -0800 Subject: [PATCH 089/129] Port event listener for query logging (#225) --- .travis.yml | 16 ++ pom.xml | 1 + twitter-eventlistener-plugin/pom.xml | 177 +++++++++++++++ .../eventlistener/TwitterEventHandler.java | 33 +++ .../eventlistener/TwitterEventListener.java | 61 +++++ .../TwitterEventListenerConfig.java | 33 +++ .../TwitterEventListenerFactory.java | 57 +++++ .../TwitterEventListenerModule.java | 39 ++++ .../TwitterEventListenerPlugin.java | 28 +++ .../scriber/QueryCompletedEventScriber.java | 131 +++++++++++ .../scriber/QueryStatsHelper.java | 213 ++++++++++++++++++ .../eventlistener/scriber/TwitterScriber.java | 72 ++++++ .../src/main/thrift/presto.thrift | 111 +++++++++ .../TestTwitterEventListener.java | 175 ++++++++++++++ .../TestTwitterEventListenerConfig.java | 42 ++++ .../TestTwitterEventListenerPlugin.java | 56 +++++ .../TestingTwitterEventListenerPlugin.java | 68 ++++++ .../TestQueryCompletedEventScriber.java | 209 +++++++++++++++++ 18 files changed, 1522 insertions(+) create mode 100644 twitter-eventlistener-plugin/pom.xml create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventHandler.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListener.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerPlugin.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java create mode 100644 twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/TwitterScriber.java create mode 100644 twitter-eventlistener-plugin/src/main/thrift/presto.thrift create mode 100644 twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListener.java create mode 100644 twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java create mode 100644 twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java create mode 100644 twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestingTwitterEventListenerPlugin.java create mode 100644 twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/scriber/TestQueryCompletedEventScriber.java diff --git a/.travis.yml b/.travis.yml index 45075b1e9ed7c..d6b1f55c9df69 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,6 +55,7 @@ cache: directories: - $HOME/.m2/repository - $HOME/.m2/wrapper + - $HOME/.thrift services: - docker @@ -62,6 +63,21 @@ services: git: quiet: true +before_install: + - | + if [[ ! -e $HOME/.thrift/bin/thrift ]]; then + sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libboost-filesystem-dev libboost-thread-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev + wget https://www.apache.org/dist/thrift/0.9.3/thrift-0.9.3.tar.gz + tar xfz thrift-0.9.3.tar.gz + cd thrift-0.9.3 && ./configure --without-cpp --without-c_glib --without-python --without-ruby --without-php --without-erlang --without-go --without-nodejs -q --prefix=$HOME/.thrift + sudo make install > thrift_make_install.log + cd .. + fi + - | + if [[ ! -e /usr/local/bin/thrift ]]; then + sudo ln -s $HOME/.thrift/bin/thrift /usr/local/bin/thrift + fi + install: - ./mvnw -v - | diff --git a/pom.xml b/pom.xml index d0cbf9694f55b..f563c166562d5 100644 --- a/pom.xml +++ b/pom.xml @@ -159,6 +159,7 @@ presto-spark-testing presto-druid presto-common + twitter-eventlistener-plugin diff --git a/twitter-eventlistener-plugin/pom.xml b/twitter-eventlistener-plugin/pom.xml new file mode 100644 index 0000000000000..3acc6cb66af27 --- /dev/null +++ b/twitter-eventlistener-plugin/pom.xml @@ -0,0 +1,177 @@ + + + + com.facebook.presto + presto-root + 0.228 + + 4.0.0 + + twitter-event-listener + Twitter Event Listener + presto-plugin + + + ${project.parent.basedir} + + + + + com.facebook.presto + presto-spi + provided + + + + io.airlift + bootstrap + + + + io.airlift + configuration + + + + io.airlift + log + + + + io.airlift + units + provided + + + + com.google.guava + guava + + + + com.google.inject + guice + + + + javax.inject + javax.inject + + + + org.glassfish + javax.json + 1.0.4 + + + + + com.twitter + util-logging_2.10 + 6.34.0 + + + commons-logging + commons-logging + + + + + + org.apache.thrift + libthrift + + + + org.scala-lang + scala-library + 2.10.6 + + + + + org.testng + testng + test + + + + io.airlift + testing + test + + + + io.airlift + http-server + test + + + + io.airlift + jaxrs + test + + + + io.airlift + node + test + + + + javax.ws.rs + javax.ws.rs-api + test + + + + com.facebook.presto + presto-tests + test + + + + com.facebook.presto + presto-main + test + + + + com.facebook.presto + presto-tpch + test + + + + + + + org.apache.thrift.tools + maven-thrift-plugin + 0.1.11 + + /usr/local/bin/thrift + + + + thrift-sources + generate-sources + + compile + + + + thrift-test-sources + generate-test-sources + + testCompile + + + + + + + diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventHandler.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventHandler.java new file mode 100644 index 0000000000000..36f44f68deaa7 --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventHandler.java @@ -0,0 +1,33 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.eventlistener.QueryCompletedEvent; +import com.facebook.presto.spi.eventlistener.QueryCreatedEvent; +import com.facebook.presto.spi.eventlistener.SplitCompletedEvent; + +public interface TwitterEventHandler +{ + default void handleQueryCreated(QueryCreatedEvent queryCreatedEvent) + { + } + + default void handleQueryCompleted(QueryCompletedEvent queryCompletedEvent) + { + } + + default void handleSplitCompleted(SplitCompletedEvent splitCompletedEvent) + { + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListener.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListener.java new file mode 100644 index 0000000000000..31d049aae8fcc --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListener.java @@ -0,0 +1,61 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.eventlistener.EventListener; +import com.facebook.presto.spi.eventlistener.QueryCompletedEvent; +import com.facebook.presto.spi.eventlistener.QueryCreatedEvent; +import com.facebook.presto.spi.eventlistener.SplitCompletedEvent; + +import javax.inject.Inject; + +import java.util.Set; + +import static java.util.Objects.requireNonNull; + +public class TwitterEventListener + implements EventListener +{ + private final Set handlers; + + @Inject + public TwitterEventListener(Set handlers) + { + this.handlers = requireNonNull(handlers, "handlers is null"); + } + + @Override + public void queryCreated(QueryCreatedEvent queryCreatedEvent) + { + for (TwitterEventHandler handler : handlers) { + handler.handleQueryCreated(queryCreatedEvent); + } + } + + @Override + public void queryCompleted(QueryCompletedEvent queryCompletedEvent) + { + for (TwitterEventHandler handler : handlers) { + handler.handleQueryCompleted(queryCompletedEvent); + } + } + + @Override + public void splitCompleted(SplitCompletedEvent splitCompletedEvent) + { + for (TwitterEventHandler handler : handlers) { + handler.handleSplitCompleted(splitCompletedEvent); + } + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java new file mode 100644 index 0000000000000..6894ebfc181b6 --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java @@ -0,0 +1,33 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import io.airlift.configuration.Config; + +public class TwitterEventListenerConfig +{ + private String scribeCategory; + + public String getScribeCategory() + { + return scribeCategory; + } + + @Config("event-listener.scribe-category") + public TwitterEventListenerConfig setScribeCategory(String scribeCategory) + { + this.scribeCategory = scribeCategory; + return this; + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java new file mode 100644 index 0000000000000..c28567b47c82a --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java @@ -0,0 +1,57 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.eventlistener.EventListener; +import com.facebook.presto.spi.eventlistener.EventListenerFactory; +import com.google.inject.Injector; +import io.airlift.bootstrap.Bootstrap; + +import java.util.Map; + +import static com.google.common.base.Throwables.throwIfUnchecked; + +public class TwitterEventListenerFactory + implements EventListenerFactory +{ + @Override + public String getName() + { + return "twitter-event-listener"; + } + + @Override + public EventListener create(Map config) + { + try { + Bootstrap app = new Bootstrap(new TwitterEventListenerModule()); + + Injector injector = app + .strictConfig() + .doNotInitializeLogging() + .setRequiredConfigurationProperties(config) + .initialize(); + + return injector.getInstance(TwitterEventListener.class); + } + catch (InterruptedException ie) { + Thread.currentThread().interrupt(); + throw new RuntimeException("Interrupted while creating connector", ie); + } + catch (Exception e) { + throwIfUnchecked(e); + throw new RuntimeException(e); + } + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java new file mode 100644 index 0000000000000..a997b8b122c21 --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java @@ -0,0 +1,39 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.google.inject.Binder; +import com.google.inject.Scopes; +import com.google.inject.multibindings.Multibinder; +import com.twitter.presto.plugin.eventlistener.scriber.QueryCompletedEventScriber; +import io.airlift.configuration.AbstractConfigurationAwareModule; + +import static com.google.inject.multibindings.Multibinder.newSetBinder; +import static io.airlift.configuration.ConfigBinder.configBinder; + +public class TwitterEventListenerModule + extends AbstractConfigurationAwareModule +{ + @Override + public void setup(Binder binder) + { + binder.bind(TwitterEventListener.class).in(Scopes.SINGLETON); + configBinder(binder).bindConfig(TwitterEventListenerConfig.class); + TwitterEventListenerConfig config = buildConfigObject(TwitterEventListenerConfig.class); + Multibinder twitterEventHandlerBinder = newSetBinder(binder, TwitterEventHandler.class); + if (config.getScribeCategory() != null) { + twitterEventHandlerBinder.addBinding().to(QueryCompletedEventScriber.class).in(Scopes.SINGLETON); + } + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerPlugin.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerPlugin.java new file mode 100644 index 0000000000000..1b77b1decce7f --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerPlugin.java @@ -0,0 +1,28 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.Plugin; +import com.facebook.presto.spi.eventlistener.EventListenerFactory; +import com.google.common.collect.ImmutableList; + +public class TwitterEventListenerPlugin + implements Plugin +{ + @Override + public Iterable getEventListenerFactories() + { + return ImmutableList.of(new TwitterEventListenerFactory()); + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java new file mode 100644 index 0000000000000..ed4986898c0d2 --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java @@ -0,0 +1,131 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener.scriber; + +import com.facebook.presto.spi.eventlistener.QueryCompletedEvent; +import com.facebook.presto.spi.eventlistener.QueryContext; +import com.facebook.presto.spi.eventlistener.QueryFailureInfo; +import com.facebook.presto.spi.eventlistener.QueryMetadata; +import com.facebook.presto.spi.eventlistener.QueryStatistics; +import com.twitter.presto.plugin.eventlistener.TwitterEventHandler; +import com.twitter.presto.plugin.eventlistener.TwitterEventListenerConfig; +import com.twitter.presto.thriftjava.QueryCompletionEvent; +import com.twitter.presto.thriftjava.QueryState; +import io.airlift.log.Logger; +import org.apache.thrift.TException; + +import javax.inject.Inject; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static java.util.Objects.requireNonNull; + +/** + * Class that scribes query completion events + */ +public class QueryCompletedEventScriber + implements TwitterEventHandler +{ + private static final String DASH = "-"; + private static final Logger log = Logger.get(QueryCompletedEventScriber.class); + + private final TwitterScriber scriber; + + @Inject + public QueryCompletedEventScriber(TwitterEventListenerConfig config) + { + requireNonNull(config.getScribeCategory(), "scribe category is null"); + this.scriber = new TwitterScriber(config.getScribeCategory()); + } + + public QueryCompletedEventScriber(TwitterScriber scriber) + { + this.scriber = requireNonNull(scriber, "scriber is null"); + } + + @Override + public void handleQueryCompleted(QueryCompletedEvent event) + { + try { + scriber.scribe(toThriftQueryCompletionEvent(event)); + } + catch (TException e) { + log.warn(e, + String.format("Could not serialize thrift object of Query(id=%s, user=%s, env=%s, schema=%s.%s)", + event.getMetadata().getQueryId(), + event.getContext().getUser(), + event.getContext().getEnvironment(), + event.getContext().getCatalog().orElse(DASH), + event.getContext().getSchema().orElse(DASH))); + } + } + + private static QueryCompletionEvent toThriftQueryCompletionEvent(QueryCompletedEvent event) + { + QueryMetadata eventMetadata = event.getMetadata(); + QueryContext eventContext = event.getContext(); + QueryStatistics eventStat = event.getStatistics(); + + QueryCompletionEvent thriftEvent = + new com.twitter.presto.thriftjava.QueryCompletionEvent(); + + thriftEvent.setQuery_id(eventMetadata.getQueryId()); + thriftEvent.setTransaction_id(eventMetadata.getTransactionId().orElse(DASH)); + thriftEvent.setUser(eventContext.getUser()); + thriftEvent.setPrincipal(eventContext.getPrincipal().orElse(DASH)); + thriftEvent.setSource(eventContext.getSource().orElse(DASH)); + thriftEvent.setServer_version(eventContext.getServerVersion()); + thriftEvent.setEnvironment(eventContext.getEnvironment()); + thriftEvent.setCatalog(eventContext.getCatalog().orElse(DASH)); + thriftEvent.setSchema(eventContext.getSchema().orElse(DASH)); + Map> queriedColumnsByTable = new HashMap<>(); + event.getIoMetadata().getInputs().forEach(input -> queriedColumnsByTable.put(String.format("%s.%s", input.getSchema(), input.getTable()), input.getColumns())); + thriftEvent.setQueried_columns_by_table(queriedColumnsByTable); + thriftEvent.setRemote_client_address(eventContext.getRemoteClientAddress().orElse(DASH)); + thriftEvent.setUser_agent(eventContext.getUserAgent().orElse(DASH)); + thriftEvent.setQuery_state(QueryState.valueOf(eventMetadata.getQueryState())); + thriftEvent.setUri(eventMetadata.getUri().toString()); + thriftEvent.setQuery(eventMetadata.getQuery()); + thriftEvent.setCreate_time_ms(event.getCreateTime().toEpochMilli()); + thriftEvent.setExecution_start_time_ms(event.getExecutionStartTime().toEpochMilli()); + thriftEvent.setEnd_time_ms(event.getEndTime().toEpochMilli()); + thriftEvent.setQueued_time_ms(eventStat.getQueuedTime().toMillis()); + thriftEvent.setQuery_wall_time_ms(eventStat.getWallTime().toMillis()); + thriftEvent.setCumulative_memory_bytesecond(eventStat.getCumulativeMemory()); + thriftEvent.setPeak_memory_bytes(eventStat.getPeakTotalNonRevocableMemoryBytes()); + thriftEvent.setCpu_time_ms(eventStat.getCpuTime().toMillis()); + if (eventStat.getAnalysisTime().isPresent()) { + thriftEvent.setAnalysis_time_ms(eventStat.getAnalysisTime().get().toMillis()); + } + thriftEvent.setTotal_bytes(eventStat.getTotalBytes()); + thriftEvent.setQuery_stages(QueryStatsHelper.getQueryStages(eventMetadata)); + thriftEvent.setOperator_summaries(QueryStatsHelper.getOperatorSummaries(eventStat)); + thriftEvent.setTotal_rows(eventStat.getTotalRows()); + thriftEvent.setSplits(eventStat.getCompletedSplits()); + if (event.getFailureInfo().isPresent()) { + QueryFailureInfo eventFailureInfo = event.getFailureInfo().get(); + thriftEvent.setError_code_id(eventFailureInfo.getErrorCode().getCode()); + thriftEvent.setError_code_name(eventFailureInfo.getErrorCode().getName()); + thriftEvent.setFailure_type(eventFailureInfo.getFailureType().orElse(DASH)); + thriftEvent.setFailure_message(eventFailureInfo.getFailureMessage().orElse(DASH)); + thriftEvent.setFailure_task(eventFailureInfo.getFailureTask().orElse(DASH)); + thriftEvent.setFailure_host(eventFailureInfo.getFailureHost().orElse(DASH)); + thriftEvent.setFailures_json(eventFailureInfo.getFailuresJson()); + } + + return thriftEvent; + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java new file mode 100644 index 0000000000000..f017e1556fc2b --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java @@ -0,0 +1,213 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener.scriber; + +import com.facebook.presto.spi.eventlistener.QueryMetadata; +import com.facebook.presto.spi.eventlistener.QueryStatistics; +import com.twitter.presto.thriftjava.OperatorStats; +import com.twitter.presto.thriftjava.QueryStageInfo; +import io.airlift.log.Logger; +import io.airlift.units.DataSize; +import io.airlift.units.Duration; + +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonReader; +import javax.json.JsonValue.ValueType; + +import java.io.StringReader; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Queue; +import java.util.stream.Collectors; + +public class QueryStatsHelper +{ + private static final Logger log = Logger.get(QueryStatsHelper.class); + + private QueryStatsHelper() + { + throw new AssertionError(); + } + + private static long getBytesOrNegativeOne(String strVal) + { + try { + return DataSize.valueOf(strVal).toBytes(); + } + catch (IllegalArgumentException e) { + log.warn(e, + String.format("Failed to parse io.airlift.units.DataSize '%s', returning -1", strVal)); + return -1; + } + } + + private static long getMillisOrNegativeOne(String strVal) + { + try { + return Duration.valueOf(strVal).toMillis(); + } + catch (IllegalArgumentException e) { + log.warn(e, + String.format("Failed to parse io.airlift.units.Duration '%s', returning -1", strVal)); + return -1; + } + } + + private static QueryStageInfo getQueryStageInfo(int stageId, JsonObject stage) + { + QueryStageInfo stageInfo = new QueryStageInfo(); + + stageInfo.stage_id = stageId; + try { + JsonObject stageStats = stage.getJsonObject("latestAttemptExecutionInfo").getJsonObject("stats"); + stageInfo.raw_input_data_size_bytes = getBytesOrNegativeOne(stageStats.getString("rawInputDataSize")); + stageInfo.output_data_size_bytes = getBytesOrNegativeOne(stageStats.getString("outputDataSize")); + stageInfo.completed_tasks = stageStats.getInt("completedTasks"); + stageInfo.completed_drivers = stageStats.getInt("completedDrivers"); + stageInfo.cumulative_memory = stageStats.getJsonNumber("cumulativeUserMemory").doubleValue(); + stageInfo.peak_memory_reservation_bytes = getBytesOrNegativeOne(stageStats.getString("peakUserMemoryReservation")); + stageInfo.total_scheduled_time_millis = getMillisOrNegativeOne(stageStats.getString("totalScheduledTime")); + stageInfo.total_cpu_time_millis = getMillisOrNegativeOne(stageStats.getString("totalCpuTime")); + stageInfo.total_blocked_time_millis = getMillisOrNegativeOne(stageStats.getString("totalBlockedTime")); + } + catch (Exception e) { + log.error(e, String.format("Error retrieving stage stats for stage %d", stageId)); + return null; + } + + return stageInfo; + } + + private static OperatorStats getOperatorStat(String operatorSummaryStr) + { + try { + JsonReader jsonReader = Json.createReader(new StringReader(operatorSummaryStr)); + return getOperatorStat(jsonReader.readObject()); + } + catch (Exception e) { + log.error(e, String.format("Error retrieving operator stats from string:\n%s\n", operatorSummaryStr)); + } + + return null; + } + + private static OperatorStats getOperatorStat(JsonObject obj) + { + OperatorStats operatorStats = new OperatorStats(); + + try { + operatorStats.pipeline_id = obj.getInt("pipelineId"); + operatorStats.operator_id = obj.getInt("operatorId"); + operatorStats.plan_node_id = obj.getString("planNodeId"); + operatorStats.operator_type = obj.getString("operatorType"); + operatorStats.total_drivers = obj.getJsonNumber("totalDrivers").longValue(); + operatorStats.add_input_calls = obj.getJsonNumber("addInputCalls").longValue(); + operatorStats.add_input_wall_millis = getMillisOrNegativeOne(obj.getString("addInputWall")); + operatorStats.add_input_cpu_millis = getMillisOrNegativeOne(obj.getString("addInputCpu")); + operatorStats.input_data_size_bytes = getBytesOrNegativeOne(obj.getString("inputDataSize")); + operatorStats.input_positions = obj.getJsonNumber("inputPositions").longValue(); + operatorStats.sum_squared_input_positions = obj.getJsonNumber("sumSquaredInputPositions").doubleValue(); + operatorStats.get_output_calls = obj.getJsonNumber("getOutputCalls").longValue(); + operatorStats.get_output_wall_millis = getMillisOrNegativeOne(obj.getString("getOutputWall")); + operatorStats.get_output_cpu_millis = getMillisOrNegativeOne(obj.getString("getOutputCpu")); + operatorStats.output_data_size_bytes = getBytesOrNegativeOne(obj.getString("outputDataSize")); + operatorStats.output_positions = obj.getJsonNumber("outputPositions").longValue(); + operatorStats.blocked_wall_millis = getMillisOrNegativeOne(obj.getString("blockedWall")); + operatorStats.finish_calls = obj.getJsonNumber("finishCalls").longValue(); + operatorStats.finish_wall_millis = getMillisOrNegativeOne(obj.getString("finishWall")); + operatorStats.finish_cpu_millis = getMillisOrNegativeOne(obj.getString("finishCpu")); + operatorStats.memory_reservation_bytes = getBytesOrNegativeOne(obj.getString("userMemoryReservation")); + operatorStats.system_memory_reservation_bytes = getBytesOrNegativeOne(obj.getString("systemMemoryReservation")); + } + catch (Exception e) { + log.error(e, String.format("Error retrieving operator stats from JsonObject:\n%s\n", obj.toString())); + return null; + } + + return operatorStats; + } + + public static Map getQueryStages(QueryMetadata eventMetadata) + { + if (!eventMetadata.getPayload().isPresent()) { + return null; + } + + String payload = eventMetadata.getPayload().get(); + Queue stageJsonObjs = new LinkedList<>(); + try { + JsonReader jsonReader = Json.createReader(new StringReader(payload)); + stageJsonObjs.add(jsonReader.readObject()); + } + catch (Exception e) { + log.error(e, + String.format("getQueryStages - Unable to extract JsonObject out of following blob:\n%s\n", payload)); + return null; + } + + Map stages = new HashMap<>(); + while (!stageJsonObjs.isEmpty()) { + JsonObject cur = stageJsonObjs.poll(); + String stageIdStr; + try { + stageIdStr = cur.getString("stageId"); + int stageId = Integer.parseInt(stageIdStr.split("\\.")[1]); + QueryStageInfo curStage = getQueryStageInfo(stageId, cur); + if (curStage != null) { + stages.put(stageId, getQueryStageInfo(stageId, cur)); + } + } + catch (Exception e) { + log.error(e, + String.format("Failed to parse QueryStageInfo from JsonObject:\n%s\n", cur.toString())); + return null; + } + + try { + cur.getJsonArray("subStages") + .stream() + .filter(val -> val.getValueType() == ValueType.OBJECT) + .forEach(val -> stageJsonObjs.add((JsonObject) val)); + } + catch (Exception e) { + log.error(e, + String.format("Failed to get subStages for stage %s, treating as no subStages", stageIdStr)); + } + } + + return stages; + } + + public static List getOperatorSummaries(QueryStatistics eventStat) + { + try { + return eventStat.getOperatorSummaries() + .stream() + .filter(val -> val != null && !val.isEmpty()) + .map(QueryStatsHelper::getOperatorStat) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + } + catch (Exception e) { + log.error(e, + String.format("Error converting List to List:\n%s\n", eventStat.getOperatorSummaries().toString())); + } + + return null; + } +} diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/TwitterScriber.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/TwitterScriber.java new file mode 100644 index 0000000000000..15e3206b937a9 --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/TwitterScriber.java @@ -0,0 +1,72 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener.scriber; + +import com.twitter.logging.BareFormatter$; +import com.twitter.logging.Level; +import com.twitter.logging.QueueingHandler; +import com.twitter.logging.ScribeHandler; +import org.apache.thrift.TBase; +import org.apache.thrift.TException; +import org.apache.thrift.TSerializer; + +import java.util.Base64; +import java.util.logging.LogRecord; + +public class TwitterScriber +{ + private static final int MAX_QUEUE_SIZE = 1000; + + private QueueingHandler queueingHandler; + + // TSerializer is not thread safe + private final ThreadLocal serializer = ThreadLocal.withInitial(() -> new TSerializer()); + + public TwitterScriber(String scribeCategory) + { + ScribeHandler scribeHandler = new ScribeHandler( + ScribeHandler.DefaultHostname(), + ScribeHandler.DefaultPort(), + scribeCategory, + ScribeHandler.DefaultBufferTime(), + ScribeHandler.DefaultConnectBackoff(), + ScribeHandler.DefaultMaxMessagesPerTransaction(), + ScribeHandler.DefaultMaxMessagesToBuffer(), + BareFormatter$.MODULE$, + scala.Option.apply(null)); + queueingHandler = new QueueingHandler(scribeHandler, MAX_QUEUE_SIZE); + } + + public void scribe(TBase thriftMessage) + throws TException + { + scribe(serializeThriftToString(thriftMessage)); + } + + /** + * Serialize a thrift object to bytes, compress, then encode as a base64 string. + * Throws TException + */ + private String serializeThriftToString(TBase thriftMessage) + throws TException + { + return Base64.getEncoder().encodeToString(serializer.get().serialize(thriftMessage)); + } + + protected void scribe(String message) + { + LogRecord logRecord = new LogRecord(Level.ALL, message); + queueingHandler.publish(logRecord); + } +} diff --git a/twitter-eventlistener-plugin/src/main/thrift/presto.thrift b/twitter-eventlistener-plugin/src/main/thrift/presto.thrift new file mode 100644 index 0000000000000..fd9539be3fe7d --- /dev/null +++ b/twitter-eventlistener-plugin/src/main/thrift/presto.thrift @@ -0,0 +1,111 @@ +namespace java com.twitter.presto.thriftjava +#@namespace scala com.twitter.presto.thriftscala + +enum QueryState { + QUEUED = 1, + PLANNING = 2, + STARTING = 3, + RUNNING = 4, + FINISHING = 5, + FINISHED = 6, + FAILED = 7 +} + +struct OperatorStats { + 1: required i32 pipeline_id + 2: required i32 operator_id + 3: required string plan_node_id + 4: required string operator_type + 5: required i64 total_drivers + 6: required i64 add_input_calls + 7: required i64 add_input_wall_millis + 8: required i64 add_input_cpu_millis + 9: required i64 add_input_user_millis + 10: required i64 input_data_size_bytes + 11: required i64 input_positions + 12: required double sum_squared_input_positions + 13: required i64 get_output_calls + 14: required i64 get_output_wall_millis + 15: required i64 get_output_cpu_millis + 16: required i64 get_output_user_millis + 17: required i64 output_data_size_bytes + 18: required i64 output_positions + 19: required i64 blocked_wall_millis + 20: required i64 finish_calls + 21: required i64 finish_wall_millis + 22: required i64 finish_cpu_millis + 23: required i64 finish_user_millis + 24: required i64 memory_reservation_bytes + 25: required i64 system_memory_reservation_bytes +}(persisted='true') + +struct QueryStageInfo { + 1: required i32 stage_id + 2: required i64 raw_input_data_size_bytes + 3: required i64 output_data_size_bytes + 4: required i32 completed_tasks + 5: required i32 completed_drivers + 6: required double cumulative_memory + 7: required i64 peak_memory_reservation_bytes + 8: required i64 total_scheduled_time_millis + 9: required i64 total_cpu_time_millis + 10: required i64 total_user_time_millis + 11: required i64 total_blocked_time_millis +}(persisted='true') + +/** + * Thrift version of a Presto QueryCompletionEvent. See QueryCompletionEvent for usage. + */ +struct QueryCompletionEvent { + 1: required string query_id + 2: optional string transaction_id + 3: required string user + 4: optional string principal + 5: optional string source + 6: optional string server_version + 7: optional string environment + 8: optional string catalog + 9: optional string schema + 10: optional string remote_client_address + 11: optional string user_agent + 12: required QueryState query_state + 13: optional string uri + 14: optional list field_names + 15: required string query + 16: required i64 create_time_ms + 17: required i64 execution_start_time_ms + 18: required i64 end_time_ms + 19: required i64 queued_time_ms + 20: optional i64 analysis_time_ms + 21: required i64 distributed_planning_time_ms + 22: required i64 total_split_wall_time_ms + 23: required i64 total_split_cpu_time_ms + 24: required i64 total_bytes + 25: required i64 total_rows + 26: required i32 splits + 27: optional i32 error_code_id + 28: optional string error_code_name + 29: optional string failure_type + 30: optional string failure_message + 31: optional string failure_task + 32: optional string failure_host + 33: optional string output_stage_json + 34: optional string failures_json + 35: optional string inputs_json + 36: optional string session_properties_json + + # precalcuate some derived data to simplify queries + 200: required i64 query_wall_time_ms + 201: required i64 bytes_per_sec + 202: required i64 bytes_per_cpu_sec + 203: required i64 rows_per_sec + 204: required i64 rows_per_cpu_sec + + 205: optional map> queried_columns_by_table + 206: optional map query_stages + 207: optional list operator_summaries + + 208: optional i64 peak_memory_bytes + 209: optional double cumulative_memory_bytesecond + 210: optional i64 cpu_time_ms +}(persisted='true') diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListener.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListener.java new file mode 100644 index 0000000000000..02b8e019e851d --- /dev/null +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListener.java @@ -0,0 +1,175 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.Session; +import com.facebook.presto.spi.eventlistener.QueryCompletedEvent; +import com.facebook.presto.spi.eventlistener.QueryCreatedEvent; +import com.facebook.presto.spi.eventlistener.SplitCompletedEvent; +import com.facebook.presto.testing.MaterializedResult; +import com.facebook.presto.tests.DistributedQueryRunner; +import com.facebook.presto.tpch.TpchPlugin; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import static com.facebook.presto.testing.TestingSession.testSessionBuilder; +import static com.google.common.collect.Iterables.getOnlyElement; +import static org.testng.Assert.assertEquals; + +@Test(singleThreaded = true) +public class TestTwitterEventListener +{ + private static final int SPLITS_PER_NODE = 3; + private final TestingTwitterEventHandler handler = new TestingTwitterEventHandler(); + + private DistributedQueryRunner queryRunner; + private Session session; + + @BeforeClass + private void setUp() + throws Exception + { + session = testSessionBuilder() + .setSystemProperty("task_concurrency", "1") + .setCatalog("tpch") + .setSchema("tiny") + .setClientInfo("{\"clientVersion\":\"testVersion\"}") + .build(); + queryRunner = new DistributedQueryRunner(session, 1); + queryRunner.installPlugin(new TpchPlugin()); + queryRunner.installPlugin(new TestingTwitterEventListenerPlugin(handler)); + queryRunner.createCatalog("tpch", "tpch", ImmutableMap.of("tpch.splits-per-node", Integer.toString(SPLITS_PER_NODE))); + } + + @AfterClass(alwaysRun = true) + private void tearDown() + { + queryRunner.close(); + queryRunner = null; + } + + @Test + public void testConstantQuery() + throws Exception + { + // QueryCreated: 1, QueryCompleted: 1, Splits: 1 + runQueryAndWaitForEvents("SELECT 1", 3); + + QueryCreatedEvent queryCreatedEvent = getOnlyElement(handler.getQueryCreatedEvents()); + assertEquals(queryCreatedEvent.getContext().getServerVersion(), "testversion"); + assertEquals(queryCreatedEvent.getContext().getServerAddress(), "127.0.0.1"); + assertEquals(queryCreatedEvent.getContext().getEnvironment(), "testing"); + assertEquals(queryCreatedEvent.getContext().getClientInfo().get(), "{\"clientVersion\":\"testVersion\"}"); + assertEquals(queryCreatedEvent.getMetadata().getQuery(), "SELECT 1"); + + QueryCompletedEvent queryCompletedEvent = getOnlyElement(handler.getQueryCompletedEvents()); + assertEquals(queryCompletedEvent.getStatistics().getTotalRows(), 0L); + assertEquals(queryCompletedEvent.getContext().getClientInfo().get(), "{\"clientVersion\":\"testVersion\"}"); + assertEquals(queryCreatedEvent.getMetadata().getQueryId(), queryCompletedEvent.getMetadata().getQueryId()); + + List splitCompletedEvents = handler.getSplitCompletedEvents(); + assertEquals(splitCompletedEvents.get(0).getQueryId(), queryCompletedEvent.getMetadata().getQueryId()); + assertEquals(splitCompletedEvents.get(0).getStatistics().getCompletedPositions(), 1); + } + + private MaterializedResult runQueryAndWaitForEvents(String sql, int numEventsExpected) + throws Exception + { + handler.initialize(numEventsExpected); + MaterializedResult result = queryRunner.execute(session, sql); + handler.waitForEvents(10); + + return result; + } + + static class TestingTwitterEventHandler + implements TwitterEventHandler + { + private ImmutableList.Builder queryCreatedEvents; + private ImmutableList.Builder queryCompletedEvents; + private ImmutableList.Builder splitCompletedEvents; + + private CountDownLatch eventsLatch; + + public synchronized void initialize(int numEvents) + { + queryCreatedEvents = ImmutableList.builder(); + queryCompletedEvents = ImmutableList.builder(); + splitCompletedEvents = ImmutableList.builder(); + + eventsLatch = new CountDownLatch(numEvents); + } + + public void waitForEvents(int timeoutSeconds) + throws InterruptedException + { + eventsLatch.await(timeoutSeconds, TimeUnit.SECONDS); + } + + public synchronized void addQueryCreated(QueryCreatedEvent event) + { + queryCreatedEvents.add(event); + eventsLatch.countDown(); + } + + public synchronized void addQueryCompleted(QueryCompletedEvent event) + { + queryCompletedEvents.add(event); + eventsLatch.countDown(); + } + + public synchronized void addSplitCompleted(SplitCompletedEvent event) + { + splitCompletedEvents.add(event); + eventsLatch.countDown(); + } + + public List getQueryCreatedEvents() + { + return queryCreatedEvents.build(); + } + + public List getQueryCompletedEvents() + { + return queryCompletedEvents.build(); + } + + public List getSplitCompletedEvents() + { + return splitCompletedEvents.build(); + } + + public void handleQueryCreated(QueryCreatedEvent queryCreatedEvent) + { + addQueryCreated(queryCreatedEvent); + } + + public void handleQueryCompleted(QueryCompletedEvent queryCompletedEvent) + { + addQueryCompleted(queryCompletedEvent); + } + + public void handleSplitCompleted(SplitCompletedEvent splitCompletedEvent) + { + addSplitCompleted(splitCompletedEvent); + } + } +} diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java new file mode 100644 index 0000000000000..b303e9c3f29b9 --- /dev/null +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java @@ -0,0 +1,42 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.google.common.collect.ImmutableMap; +import io.airlift.configuration.testing.ConfigAssertions; +import org.testng.annotations.Test; + +import java.util.Map; + +public class TestTwitterEventListenerConfig +{ + @Test + public void testDefaults() + { + ConfigAssertions.assertRecordedDefaults(ConfigAssertions.recordDefaults(TwitterEventListenerConfig.class).setScribeCategory(null)); + } + + @Test + public void testExplicitPropertyMappings() + { + Map properties = new ImmutableMap.Builder() + .put("event-listener.scribe-category", "test") + .build(); + + TwitterEventListenerConfig expected = new TwitterEventListenerConfig() + .setScribeCategory("test"); + + ConfigAssertions.assertFullMapping(properties, expected); + } +} diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java new file mode 100644 index 0000000000000..33938d407bb39 --- /dev/null +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java @@ -0,0 +1,56 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.Plugin; +import com.facebook.presto.spi.eventlistener.EventListener; +import com.facebook.presto.spi.eventlistener.EventListenerFactory; +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.Test; + +import java.util.Map; +import java.util.ServiceLoader; + +import static com.google.common.collect.Iterables.getOnlyElement; +import static io.airlift.testing.Assertions.assertInstanceOf; +import static org.testng.Assert.assertNotNull; + +public class TestTwitterEventListenerPlugin +{ + @Test + public void testPlugin() + { + TwitterEventListenerPlugin plugin = loadPlugin(TwitterEventListenerPlugin.class); + + EventListenerFactory factory = getOnlyElement(plugin.getEventListenerFactories()); + assertInstanceOf(factory, TwitterEventListenerFactory.class); + + Map config = ImmutableMap.of(); + + EventListener eventListener = factory.create(config); + assertNotNull(eventListener); + assertInstanceOf(eventListener, TwitterEventListener.class); + } + + @SuppressWarnings("unchecked") + private static T loadPlugin(Class clazz) + { + for (Plugin plugin : ServiceLoader.load(Plugin.class)) { + if (clazz.isInstance(plugin)) { + return (T) plugin; + } + } + throw new AssertionError("did not find plugin: " + clazz.getName()); + } +} diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestingTwitterEventListenerPlugin.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestingTwitterEventListenerPlugin.java new file mode 100644 index 0000000000000..4ad2d42f08d4f --- /dev/null +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestingTwitterEventListenerPlugin.java @@ -0,0 +1,68 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener; + +import com.facebook.presto.spi.Plugin; +import com.facebook.presto.spi.eventlistener.EventListener; +import com.facebook.presto.spi.eventlistener.EventListenerFactory; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; + +import java.util.Map; + +import static java.lang.String.format; +import static java.util.Objects.requireNonNull; + +public class TestingTwitterEventListenerPlugin + implements Plugin +{ + private EventListenerFactory factory; + + public TestingTwitterEventListenerPlugin(TwitterEventHandler... handlers) + { + this.factory = new TestingTwitterEventListenerFactory(requireNonNull(handlers, "handler is null")); + } + + @Override + public Iterable getEventListenerFactories() + { + return ImmutableList.of(factory); + } + + private class TestingTwitterEventListenerFactory + implements EventListenerFactory + { + private TwitterEventHandler[] handlers; + + public TestingTwitterEventListenerFactory(TwitterEventHandler... handlers) + { + for (TwitterEventHandler handler : handlers) { + requireNonNull(handler, format("handler is null")); + } + this.handlers = handlers; + } + + @Override + public String getName() + { + return "testing-twitter-event-listener"; + } + + @Override + public EventListener create(Map config) + { + return new TwitterEventListener(ImmutableSet.copyOf(handlers)); + } + } +} diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/scriber/TestQueryCompletedEventScriber.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/scriber/TestQueryCompletedEventScriber.java new file mode 100644 index 0000000000000..fee7cf6a23fa6 --- /dev/null +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/scriber/TestQueryCompletedEventScriber.java @@ -0,0 +1,209 @@ +/* + * 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 com.twitter.presto.plugin.eventlistener.scriber; + +import com.facebook.presto.Session; +import com.facebook.presto.spi.security.Identity; +import com.facebook.presto.testing.MaterializedResult; +import com.facebook.presto.tests.DistributedQueryRunner; +import com.facebook.presto.tpch.TpchPlugin; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.twitter.presto.plugin.eventlistener.TestingTwitterEventListenerPlugin; +import com.twitter.presto.plugin.eventlistener.TwitterEventHandler; +import com.twitter.presto.thriftjava.QueryCompletionEvent; +import com.twitter.presto.thriftjava.QueryStageInfo; +import com.twitter.presto.thriftjava.QueryState; +import org.apache.thrift.TDeserializer; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.util.ArrayList; +import java.util.Base64; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import static com.facebook.presto.testing.TestingSession.testSessionBuilder; +import static com.google.common.collect.Iterables.getOnlyElement; +import static org.testng.Assert.assertEquals; + +@Test(singleThreaded = true) +public class TestQueryCompletedEventScriber +{ + private static final TDeserializer tDeserializer = new TDeserializer(); + // Currently, there is no way to pass principal from test client. + private static final Identity identity = new Identity("test_user", Optional.empty()); + private final TestingTwitterScriber scriber = new TestingTwitterScriber(); + private final TwitterEventHandler handler = new QueryCompletedEventScriber(scriber); + + private DistributedQueryRunner queryRunner; + private Session session; + + @BeforeClass + private void setUp() + throws Exception + { + session = testSessionBuilder() + .setSystemProperty("task_concurrency", "1") + .setCatalog("tpch") + .setSchema("tiny") + .setClientInfo("{\"clientVersion\":\"testVersion\"}") + .build(); + queryRunner = new DistributedQueryRunner(session, 1); + queryRunner.installPlugin(new TpchPlugin()); + queryRunner.installPlugin(new TestingTwitterEventListenerPlugin(handler)); + queryRunner.createCatalog("tpch", "tpch"); + } + + @AfterClass(alwaysRun = true) + private void tearDown() + { + queryRunner.close(); + queryRunner = null; + } + + @Test + public void testConstantQuery() + throws Exception + { + Session session = testSessionBuilder() + .setCatalog("tpch") + .setSchema("tiny") + .setIdentity(identity) + .build(); + runQueryAndWaitForEvents(session, "SELECT 1", 1); + + String queryCompletedEvent = getOnlyElement(scriber.getMessages()); + QueryCompletionEvent tEvent = new QueryCompletionEvent(); + tDeserializer.deserialize(tEvent, Base64.getDecoder().decode(queryCompletedEvent)); + + // check user audit information + assertEquals(tEvent.getUser(), identity.getUser()); + + // check server audit information + assertEquals(tEvent.getSource(), "test"); + assertEquals(tEvent.getServer_version(), "testversion"); + assertEquals(tEvent.getEnvironment(), "testing"); + + // check query audit information + assertEquals(tEvent.getCatalog(), "tpch"); + assertEquals(tEvent.getSchema(), "tiny"); + assertEquals(tEvent.getQuery(), "SELECT 1"); + assertEquals(tEvent.getQuery_state(), QueryState.FINISHED); + + // check query stats information + assertEquals(tEvent.getTotal_rows(), 0L); + assertEquals(tEvent.getTotal_bytes(), 0L); + } + + @Test + public void testNormalQuery() + throws Exception + { + runQueryAndWaitForEvents(session, "SELECT sum(linenumber) FROM lineitem", 1); + + String queryCompletedEvent = getOnlyElement(scriber.getMessages()); + QueryCompletionEvent tEvent = new QueryCompletionEvent(); + tDeserializer.deserialize(tEvent, Base64.getDecoder().decode(queryCompletedEvent)); + + // check query audit information + assertEquals(tEvent.getQueried_columns_by_table(), ImmutableMap.of("sf0.01.lineitem", ImmutableList.of("linenumber"))); + assertEquals(tEvent.getQuery_state(), QueryState.FINISHED); + + // check query state information + assertEquals(tEvent.getTotal_rows(), 60175L); + assertEquals(tEvent.getTotal_bytes(), 0L); + assertEquals(tEvent.getSplits(), tEvent.getQuery_stages().values().stream() + .map(QueryStageInfo::getCompleted_drivers) + .reduce(0, Integer::sum).intValue()); + assertEquals(tEvent.getCpu_time_ms(), tEvent.getQuery_stages().values().stream() + .map(QueryStageInfo::getTotal_cpu_time_millis) + .reduce(0L, Long::sum).longValue()); + } + + @Test + public void testFailedQuery() + throws Exception + { + String failureMessage; + // Run a query with Syntax Error + try { + runQueryAndWaitForEvents(session, "SELECT notexistcolumn FROM lineitem", 1); + failureMessage = ""; + } + catch (Exception e) { + failureMessage = e.getMessage(); + } + + String queryCompletedEvent = getOnlyElement(scriber.getMessages()); + QueryCompletionEvent tEvent = new QueryCompletionEvent(); + tDeserializer.deserialize(tEvent, Base64.getDecoder().decode(queryCompletedEvent)); + + // check query failure information + assertEquals(tEvent.getQuery_state(), QueryState.FAILED); + assertEquals(tEvent.getError_code_id(), 1); + assertEquals(tEvent.getError_code_name(), "SYNTAX_ERROR"); + assertEquals(tEvent.getFailure_message(), failureMessage); + } + + private MaterializedResult runQueryAndWaitForEvents(Session session, String sql, int numMessagesExpected) + throws Exception + { + scriber.initialize(numMessagesExpected); + MaterializedResult result = queryRunner.execute(session, sql); + scriber.waitForEvents(10); + + return result; + } + + private class TestingTwitterScriber + extends TwitterScriber + { + private final List messages; + private CountDownLatch messagesLatch; + + public TestingTwitterScriber() + { + super("test"); + this.messages = new ArrayList<>(); + } + + public synchronized void initialize(int numEvents) + { + messagesLatch = new CountDownLatch(numEvents); + messages.clear(); + } + + public void waitForEvents(int timeoutSeconds) + throws InterruptedException + { + messagesLatch.await(timeoutSeconds, TimeUnit.SECONDS); + } + + public List getMessages() + { + return ImmutableList.copyOf(messages); + } + + @Override + protected void scribe(String message) + { + messages.add(message); + messagesLatch.countDown(); + } + } +} From e862e26c31c390f182b4c5457550ace114f14e9a Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Tue, 7 Jan 2020 21:29:24 -0800 Subject: [PATCH 090/129] Port adding presto-twitter-server (#226) --- pom.xml | 8 + presto-twitter-server/NOTICE | 2836 +++++++++++++++++ presto-twitter-server/README.txt | 5 + presto-twitter-server/pom.xml | 26 + .../src/main/provisio/presto.xml | 76 + .../src/main/provisio/twitter.xml | 10 + twitter-eventlistener-plugin/pom.xml | 2 +- 7 files changed, 2962 insertions(+), 1 deletion(-) create mode 100644 presto-twitter-server/NOTICE create mode 100644 presto-twitter-server/README.txt create mode 100644 presto-twitter-server/pom.xml create mode 100644 presto-twitter-server/src/main/provisio/presto.xml create mode 100644 presto-twitter-server/src/main/provisio/twitter.xml diff --git a/pom.xml b/pom.xml index f563c166562d5..1a533539d4560 100644 --- a/pom.xml +++ b/pom.xml @@ -160,6 +160,7 @@ presto-druid presto-common twitter-eventlistener-plugin + presto-twitter-server @@ -1800,6 +1801,13 @@ true + + io.takari.maven.plugins + provisio-maven-plugin + 0.1.40 + true + + org.apache.maven.plugins maven-compiler-plugin diff --git a/presto-twitter-server/NOTICE b/presto-twitter-server/NOTICE new file mode 100644 index 0000000000000..77c2c37242856 --- /dev/null +++ b/presto-twitter-server/NOTICE @@ -0,0 +1,2836 @@ +THE FOLLOWING IS SOFTWARE LICENSED BY THIRD PARTIES UNDER OPEN SOURCE LICENSES THAT MAY BE USED BY THIS PRODUCT. + +----- + +The following software may be included in this product: aether. The source code is available at http://eclipse.org/aether/download/. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and + +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the Program. + +Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. + +----- + +The following software may be included in this product: antlr stringtemplate4, antlr runtime. This software contains the following license and notice below: + +[The "BSD license"] +Copyright (c) 2011-2013 Terence Parr +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The following software may be included in this product: Apache Avro, Apache BVal, Apache Commons BeanUtils Core, Apache Commons CLI, Apache Commons Codec, Apache Commons Configuration, Apache Commons IO, Apache Commons Lang, Apache Commons Logging, Apache Hadoop, Apache Hive, Apache HttpClient, Apache Maven, Apache Thrift, Apache XBean, Bean Validation API, Code Generation Library, Guava, Jackson, Jetty, Joda time, Log4j Implemented Over SLF4J, Ning Asynchronous Http Client, Plexus, Tableau Web Data Connector, airlift, airlift resolver, airlift slice, fastutil, jDBI, javax.inject, jmxutils, jQuery, opencsv, snappy, vis.js. +This software contains the following license and notice below: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +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. + +----- + +The following software may be included in this product: asm. This software contains the following license and notice below: + +Copyright (c) 2000-2011 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The following software may be included in this product: findbugs. The source code is available at http://code.google.com/p/findbugs/. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +-- From LICENSE-ASM.txt: + +Copyright (c) 2000-2005 INRIA, France Telecom +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holders nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +-- From LICENSE-AppleJavaExtensions.txt: + +AppleJavaExtensions +v 1.2 + +This is a pluggable jar of stub classes representing the new Apple eAWT and eIO APIs for Java 1.4 on Mac OS X. The purpose of these stubs is to allow for compilation of eAWT- or eIO-referencing code on platforms other than Mac OS X. The jar file is enclosed in a zip archive for easy expansion on other platforms. + +These stubs are not intended for the runtime classpath on non-Mac platforms. Please see the OSXAdapter sample for how to write cross-platform code that uses eAWT. + +Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple +Computer, Inc. ("Apple") in consideration of your agreement to the +following terms, and your use, installation, modification or +redistribution of this Apple software constitutes acceptance of these +terms. If you do not agree with these terms, please do not use, +install, modify or redistribute this Apple software. + +In consideration of your agreement to abide by the following terms, and +subject to these terms, Apple grants you a personal, non-exclusive +license, under Apple's copyrights in this original Apple software (the +"Apple Software"), to use, reproduce, modify and redistribute the Apple +Software, with or without modifications, in source and/or binary forms; +provided that if you redistribute the Apple Software in its entirety and +without modifications, you must retain this notice and the following +text and disclaimers in all such redistributions of the Apple Software. +Neither the name, trademarks, service marks or logos of Apple Computer, +Inc. may be used to endorse or promote products derived from the Apple +Software without specific prior written permission from Apple. Except +as expressly stated in this notice, no other rights or licenses, express +or implied, are granted by Apple herein, including but not limited to +any patent rights that may be infringed by your derivative works or by +other works in which the Apple Software may be incorporated. + +The Apple Software is provided by Apple on an "AS IS" basis. APPLE +MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION +THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND +OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. + +IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, +MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED +AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), +STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +Copyright © 2003-2006 Apple Computer, Inc., All Rights Reserved + +-- From LICENSE-bcel.txt: + +/* + * Apache License + * Version 2.0, January 2004 + * http://www.apache.org/licenses/ + * + * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + * + * 1. Definitions. + * + * "License" shall mean the terms and conditions for use, reproduction, + * and distribution as defined by Sections 1 through 9 of this document. + * + * "Licensor" shall mean the copyright owner or entity authorized by + * the copyright owner that is granting the License. + * + * "Legal Entity" shall mean the union of the acting entity and all + * other entities that control, are controlled by, or are under common + * control with that entity. For the purposes of this definition, + * "control" means (i) the power, direct or indirect, to cause the + * direction or management of such entity, whether by contract or + * otherwise, or (ii) ownership of fifty percent (50%) or more of the + * outstanding shares, or (iii) beneficial ownership of such entity. + * + * "You" (or "Your") shall mean an individual or Legal Entity + * exercising permissions granted by this License. + * + * "Source" form shall mean the preferred form for making modifications, + * including but not limited to software source code, documentation + * source, and configuration files. + * + * "Object" form shall mean any form resulting from mechanical + * transformation or translation of a Source form, including but + * not limited to compiled object code, generated documentation, + * and conversions to other media types. + * + * "Work" shall mean the work of authorship, whether in Source or + * Object form, made available under the License, as indicated by a + * copyright notice that is included in or attached to the work + * (an example is provided in the Appendix below). + * + * "Derivative Works" shall mean any work, whether in Source or Object + * form, that is based on (or derived from) the Work and for which the + * editorial revisions, annotations, elaborations, or other modifications + * represent, as a whole, an original work of authorship. For the purposes + * of this License, Derivative Works shall not include works that remain + * separable from, or merely link (or bind by name) to the interfaces of, + * the Work and Derivative Works thereof. + * + * "Contribution" shall mean any work of authorship, including + * the original version of the Work and any modifications or additions + * to that Work or Derivative Works thereof, that is intentionally + * submitted to Licensor for inclusion in the Work by the copyright owner + * or by an individual or Legal Entity authorized to submit on behalf of + * the copyright owner. For the purposes of this definition, "submitted" + * means any form of electronic, verbal, or written communication sent + * to the Licensor or its representatives, including but not limited to + * communication on electronic mailing lists, source code control systems, + * and issue tracking systems that are managed by, or on behalf of, the + * Licensor for the purpose of discussing and improving the Work, but + * excluding communication that is conspicuously marked or otherwise + * designated in writing by the copyright owner as "Not a Contribution." + * + * "Contributor" shall mean Licensor and any individual or Legal Entity + * on behalf of whom a Contribution has been received by Licensor and + * subsequently incorporated within the Work. + * + * 2. Grant of Copyright License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * copyright license to reproduce, prepare Derivative Works of, + * publicly display, publicly perform, sublicense, and distribute the + * Work and such Derivative Works in Source or Object form. + * + * 3. Grant of Patent License. Subject to the terms and conditions of + * this License, each Contributor hereby grants to You a perpetual, + * worldwide, non-exclusive, no-charge, royalty-free, irrevocable + * (except as stated in this section) patent license to make, have made, + * use, offer to sell, sell, import, and otherwise transfer the Work, + * where such license applies only to those patent claims licensable + * by such Contributor that are necessarily infringed by their + * Contribution(s) alone or by combination of their Contribution(s) + * with the Work to which such Contribution(s) was submitted. If You + * institute patent litigation against any entity (including a + * cross-claim or counterclaim in a lawsuit) alleging that the Work + * or a Contribution incorporated within the Work constitutes direct + * or contributory patent infringement, then any patent licenses + * granted to You under this License for that Work shall terminate + * as of the date such litigation is filed. + * + * 4. Redistribution. You may reproduce and distribute copies of the + * Work or Derivative Works thereof in any medium, with or without + * modifications, and in Source or Object form, provided that You + * meet the following conditions: + * + * (a) You must give any other recipients of the Work or + * Derivative Works a copy of this License; and + * + * (b) You must cause any modified files to carry prominent notices + * stating that You changed the files; and + * + * (c) You must retain, in the Source form of any Derivative Works + * that You distribute, all copyright, patent, trademark, and + * attribution notices from the Source form of the Work, + * excluding those notices that do not pertain to any part of + * the Derivative Works; and + * + * (d) If the Work includes a "NOTICE" text file as part of its + * distribution, then any Derivative Works that You distribute must + * include a readable copy of the attribution notices contained + * within such NOTICE file, excluding those notices that do not + * pertain to any part of the Derivative Works, in at least one + * of the following places: within a NOTICE text file distributed + * as part of the Derivative Works; within the Source form or + * documentation, if provided along with the Derivative Works; or, + * within a display generated by the Derivative Works, if and + * wherever such third-party notices normally appear. The contents + * of the NOTICE file are for informational purposes only and + * do not modify the License. You may add Your own attribution + * notices within Derivative Works that You distribute, alongside + * or as an addendum to the NOTICE text from the Work, provided + * that such additional attribution notices cannot be construed + * as modifying the License. + * + * You may add Your own copyright statement to Your modifications and + * may provide additional or different license terms and conditions + * for use, reproduction, or distribution of Your modifications, or + * for any such Derivative Works as a whole, provided Your use, + * reproduction, and distribution of the Work otherwise complies with + * the conditions stated in this License. + * + * 5. Submission of Contributions. Unless You explicitly state otherwise, + * any Contribution intentionally submitted for inclusion in the Work + * by You to the Licensor shall be under the terms and conditions of + * this License, without any additional terms or conditions. + * Notwithstanding the above, nothing herein shall supersede or modify + * the terms of any separate license agreement you may have executed + * with Licensor regarding such Contributions. + * + * 6. Trademarks. This License does not grant permission to use the trade + * names, trademarks, service marks, or product names of the Licensor, + * except as required for reasonable and customary use in describing the + * origin of the Work and reproducing the content of the NOTICE file. + * + * 7. Disclaimer of Warranty. Unless required by applicable law or + * agreed to in writing, Licensor provides the Work (and each + * Contributor provides its Contributions) on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied, including, without limitation, any warranties or conditions + * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + * PARTICULAR PURPOSE. You are solely responsible for determining the + * appropriateness of using or redistributing the Work and assume any + * risks associated with Your exercise of permissions under this License. + * + * 8. Limitation of Liability. In no event and under no legal theory, + * whether in tort (including negligence), contract, or otherwise, + * unless required by applicable law (such as deliberate and grossly + * negligent acts) or agreed to in writing, shall any Contributor be + * liable to You for damages, including any direct, indirect, special, + * incidental, or consequential damages of any character arising as a + * result of this License or out of the use or inability to use the + * Work (including but not limited to damages for loss of goodwill, + * work stoppage, computer failure or malfunction, or any and all + * other commercial damages or losses), even if such Contributor + * has been advised of the possibility of such damages. + * + * 9. Accepting Warranty or Additional Liability. While redistributing + * the Work or Derivative Works thereof, You may choose to offer, + * and charge a fee for, acceptance of support, warranty, indemnity, + * or other liability obligations and/or rights consistent with this + * License. However, in accepting such obligations, You may act only + * on Your own behalf and on Your sole responsibility, not on behalf + * of any other Contributor, and only if You agree to indemnify, + * defend, and hold each Contributor harmless for any liability + * incurred by, or claims asserted against, such Contributor by reason + * of your accepting any such warranty or additional liability. + * + * END OF TERMS AND CONDITIONS + * + * APPENDIX: How to apply the Apache License to your work. + * + * To apply the Apache License to your work, attach the following + * boilerplate notice, with the fields enclosed by brackets "[]" + * replaced with your own identifying information. (Don't include + * the brackets!) The text should be enclosed in the appropriate + * comment syntax for the file format. We also recommend that a + * file or class name and description of purpose be included on the + * same "printed page" as the copyright notice for easier + * identification within third-party archives. + * + * Copyright [yyyy] [name of copyright owner] + * + * 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. + */ + +-- From LICENSE-commons-lang.txt: + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +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. + +-- From LICENSE-docbook.txt: + + + +-- From LICENSE-dom4j.txt: + +BSD style license + +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided that +the following conditions are met: + +1. Redistributions of source code must retain copyright statements +and notices. Redistributions must also contain a copy of this +document. + +2. Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following +disclaimer in the documentation and/or other materials provided +with the distribution. + +3. The name "DOM4J" must not be used to endorse or promote +products derived from this Software without prior written +permission of MetaStuff, Ltd. For written permission, please +contact dom4j-info@metastuff.com. + +4. Products derived from this Software may not be called "DOM4J" +nor may "DOM4J" appear in their names without prior written +permission of MetaStuff, Ltd. DOM4J is a registered trademark of +MetaStuff, Ltd. + +5. Due credit should be given to the DOM4J Project +(http://dom4j.org/). + +THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' +AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Copyright 2001 (C) MetaStuff, Ltd. All Rights Reserved. + +-- From LICENSE-jFormatString.txt: + +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + +a) You must cause the modified files to carry prominent notices stating +that you changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or +in part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of +this License. + +c) If the modified program normally reads commands interactively when run, +you must cause it, when started running for such interactive use in the +most ordinary way, to print or display an announcement including an +appropriate copyright notice and a notice that there is no warranty (or +else, saying that you provide a warranty) and that users may redistribute +the program under these conditions, and telling the user how to view a copy +of this License. (Exception: if the Program itself is interactive but does +not normally print such an announcement, your work based on the Program is +not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above +on a medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to +give any third party, for a charge no more than your cost of physically +performing source distribution, a complete machine-readable copy of the +corresponding source code, to be distributed under the terms of Sections 1 +and 2 above on a medium customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to +distribute corresponding source code. (This alternative is allowed only +for noncommercial distribution and only if you received the program in +object code or executable form with such an offer, in accord with +Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + +One line to give the program's name and a brief idea of what it does. + +Copyright (C) + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., 59 +Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author Gnomovision comes +with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free +software, and you are welcome to redistribute it under certain conditions; +type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright interest in the program +'Gnomovision' (which makes passes at compilers) written by James Hacker. + +signature of Ty Coon, 1 April 1989 + +Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Sun Microsystems, Inc. are subject to +the following clarification and special exception to the GPL, but only where +Sun has expressly included in the particular source file's header the words +"Sun designates this particular file as subject to the "Classpath" exception +as provided by Sun in the LICENSE file that accompanied this code." + +Linking this library statically or dynamically with other modules is making +a combined work based on this library. Thus, the terms and conditions of +the GNU General Public License cover the whole combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent modules, +and to copy and distribute the resulting executable under terms of your +choice, provided that you also meet, for each linked independent module, +the terms and conditions of the license of that module. An independent +module is a module which is not derived from or based on this library. If +you modify this library, you may extend this exception to your version of +the library, but you are not obligated to do so. If you do not wish to do +so, delete this exception statement from your version. + +-- From LICENSE-jaxen.txt: + +/* +$Id: LICENSE-jaxen.txt,v 1.1 2008/06/18 18:54:23 wpugh Exp $ + +Copyright 2003-2006 The Werken Company. All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +* Neither the name of the Jaxen Project nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*/ + +-- From LICENSE-jcip.txt: + +The Java code in the package net.jcip.annotations +is copyright (c) 2005 Brian Goetz +and is released under the Creative Commons Attribution License +(http://creativecommons.org/licenses/by/2.5) +Official home: http://www.jcip.net + +-- From LICENSE-jdepend.txt: + +The jdepend library (lib/jdepend-2.9.jar) is distributed under the terms of the BSD license: +http://www.clarkware.com/software/JDepend.html#license +http://www.clarkware.com/software/license.txt + +Copyright (C) 2001 Clarkware Consulting, Inc. +All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +3. Neither the name of Clarkware Consulting, Inc. nor the names of its +contributors may be used to endorse or promote products derived +from this software without prior written permission. For written +permission, please contact clarkware@clarkware.com. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +CLARKWARE CONSULTING OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +-- From LICENSE-jsr305.txt: + +The JSR-305 reference implementation (lib/jsr305.jar) is +distributed under the terms of the New BSD license: + +http://www.opensource.org/licenses/bsd-license.php + +See the JSR-305 home page for more information: + +http://code.google.com/p/jsr-305/ + +----- + +The following software may be included in this product: floatingdecimal. The source code is available at https://github.com/airlift/floatingdecimal. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +/* +* Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* This code is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License version 2 only, as +* published by the Free Software Foundation. Oracle designates this +* particular file as subject to the "Classpath" exception as provided +* by Oracle in the LICENSE file that accompanied this code. +* +* This code is distributed in the hope that it will be useful, but WITHOUT +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +* version 2 for more details (a copy is included in the LICENSE file that +* accompanied this code). +* +* You should have received a copy of the GNU General Public License version +* 2 along with this work; if not, write to the Free Software Foundation, +* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +* +* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +* or visit www.oracle.com if you need additional information or have any +* questions. +*/ + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +----- + +The following software may be included in this product: H2 Database Engine. The source code is available at http://www.h2database.com/html/download.html. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and + +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the Program. + +Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. + +----- + +The following software may be included in this product: java servlet api. The source code is available at https://java.net/projects/servlet-spec/. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL - Version 1.1) +1. Definitions. + + 1.1. “Contributor” means each individual or entity that creates or contributes to the creation of Modifications. + + 1.2. “Contributor Version” means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor. + + 1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof. + + 1.4. “Executable” means the Covered Software in any form other than Source Code. + + 1.5. “Initial Developer” means the individual or entity that first makes Original Software available under this License. + + 1.6. “Larger Work” means a work which combines Covered Software or portions thereof with code not governed by the terms of this License. + + 1.7. “License” means this document. + + 1.8. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9. “Modifications” means the Source Code and Executable form of any of the following: + + A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications; + + B. Any new file that contains any part of the Original Software or previous Modification; or + + C. Any new file that is contributed or otherwise made available under the terms of this License. + + 1.10. “Original Software” means the Source Code and Executable form of computer software code that is originally released under this License. + + 1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.12. “Source Code” means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code. + + 1.13. “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients’ rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient’s rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as “Participant”) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License. +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction’s conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software. +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. + +----- + +The following software may be included in this product: JCodings. This software contains the following license and notice below: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +The following software may be included in this product: jersey. The source code is available at https://jersey.java.net/download.html. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL - Version 1.1) +1. Definitions. + + 1.1. “Contributor” means each individual or entity that creates or contributes to the creation of Modifications. + + 1.2. “Contributor Version” means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor. + + 1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof. + + 1.4. “Executable” means the Covered Software in any form other than Source Code. + + 1.5. “Initial Developer” means the individual or entity that first makes Original Software available under this License. + + 1.6. “Larger Work” means a work which combines Covered Software or portions thereof with code not governed by the terms of this License. + + 1.7. “License” means this document. + + 1.8. “Licensable” means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein. + + 1.9. “Modifications” means the Source Code and Executable form of any of the following: + + A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications; + + B. Any new file that contains any part of the Original Software or previous Modification; or + + C. Any new file that is contributed or otherwise made available under the terms of this License. + + 1.10. “Original Software” means the Source Code and Executable form of computer software code that is originally released under this License. + + 1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. + + 1.12. “Source Code” means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code. + + 1.13. “You” (or “Your”) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, “You” includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, “control” means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients’ rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient’s rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License. + +5. DISCLAIMER OF WARRANTY. + +COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as “Participant”) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + +UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY’S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. +8. U.S. GOVERNMENT END USERS. + +The Covered Software is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of “commercial computer software” (as that term is defined at 48 C.F.R. § 252.227-7014(a)(1)) and “commercial computer software documentation” as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License. +9. MISCELLANEOUS. + +This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction’s conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys’ fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software. +10. RESPONSIBILITY FOR CLAIMS. + +As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability. +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) + +The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California. + +----- + +The following software may be included in this product: JLine. This software contains the following license and notice below: + +/* + * Copyright (c) 2002-2007, Marc Prud'hommeaux. All rights reserved. + * + * This software is distributable under the BSD license. See the terms of the + * BSD license in the documentation provided with this software. + */ + +----- + +The following software may be included in this product: Joni. This software contains the following license and notice below: + +/* +* Permission is hereby granted, free of charge, to any person obtaining a copy of +* this software and associated documentation files (the "Software"), to deal in +* the Software without restriction, including without limitation the rights to +* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +* of the Software, and to permit persons to whom the Software is furnished to do +* so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ + +----- + +The following software may be included in this product: leveldb. This software contains the following license and notice below: + +Copyright (c) 2011 The LevelDB Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The following software may be included in this product: logback. The source code is available at http://logback.qos.ch/download.html. You may also request a copy of the source code by sending a request to opensource@fb.com. This software contains the following license and notice below: + +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and + +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the Program. + +Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. + +----- + +The following software may be included in this product: protobuf. This software contains the following license and notice below: + +Copyright 2008, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. +* Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Code generated by the Protocol Buffer compiler is owned by the owner +of the input file used when generating it. This code is not +standalone and requires a support library to be linked with it. This +support library is itself covered by the above license. + +----- + +The following software may be included in this product: slf4j. This software contains the following license and notice below: + +Copyright (c) 2004-2013 QOS.ch +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/presto-twitter-server/README.txt b/presto-twitter-server/README.txt new file mode 100644 index 0000000000000..c85064cea1702 --- /dev/null +++ b/presto-twitter-server/README.txt @@ -0,0 +1,5 @@ +Presto is a distributed SQL query engine. + +Please see the website for installation instructions: + +https://prestosql.io/ diff --git a/presto-twitter-server/pom.xml b/presto-twitter-server/pom.xml new file mode 100644 index 0000000000000..760f1f908383d --- /dev/null +++ b/presto-twitter-server/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + + com.facebook.presto + presto-root + 0.228 + + + presto-twitter-server + presto-twitter-server + provisio + + + ${project.parent.basedir} + true + true + true + true + + + com.facebook.presto.server.PrestoServer + ${project.artifactId} + + diff --git a/presto-twitter-server/src/main/provisio/presto.xml b/presto-twitter-server/src/main/provisio/presto.xml new file mode 100644 index 0000000000000..7a448a5440486 --- /dev/null +++ b/presto-twitter-server/src/main/provisio/presto.xml @@ -0,0 +1,76 @@ + + + + + + + + NOTICE + README.txt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/presto-twitter-server/src/main/provisio/twitter.xml b/presto-twitter-server/src/main/provisio/twitter.xml new file mode 100644 index 0000000000000..39a3a86b023bd --- /dev/null +++ b/presto-twitter-server/src/main/provisio/twitter.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/twitter-eventlistener-plugin/pom.xml b/twitter-eventlistener-plugin/pom.xml index 3acc6cb66af27..2ceaa29a66ec9 100644 --- a/twitter-eventlistener-plugin/pom.xml +++ b/twitter-eventlistener-plugin/pom.xml @@ -9,7 +9,7 @@ 4.0.0 - twitter-event-listener + twitter-eventlistener-plugin Twitter Event Listener presto-plugin From 4467d011d090e425f17e70e7b44a94af31e325a4 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Tue, 7 Jan 2020 23:53:25 -0800 Subject: [PATCH 091/129] Port adding twitter functions (#227) --- pom.xml | 1 + presto-twitter-functions/pom.xml | 65 +++++++++ .../presto/functions/SnowflakeFunctions.java | 129 ++++++++++++++++++ .../functions/TwitterFunctionsPlugin.java | 33 +++++ .../presto/functions/TwitterMapFunctions.java | 56 ++++++++ .../functions/TwitterStringFunctions.java | 102 ++++++++++++++ .../functions/TestTwitterFunctions.java | 94 +++++++++++++ .../src/main/provisio/twitter.xml | 6 + 8 files changed, 486 insertions(+) create mode 100644 presto-twitter-functions/pom.xml create mode 100644 presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java create mode 100644 presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterFunctionsPlugin.java create mode 100644 presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java create mode 100644 presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java create mode 100644 presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java diff --git a/pom.xml b/pom.xml index 1a533539d4560..a4759895a6c46 100644 --- a/pom.xml +++ b/pom.xml @@ -161,6 +161,7 @@ presto-common twitter-eventlistener-plugin presto-twitter-server + presto-twitter-functions diff --git a/presto-twitter-functions/pom.xml b/presto-twitter-functions/pom.xml new file mode 100644 index 0000000000000..1ad1357993919 --- /dev/null +++ b/presto-twitter-functions/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + + + com.facebook.presto + presto-root + 0.228 + + + presto-twitter-functions + Twitter's specific functions for Presto + presto-plugin + + + ${project.parent.basedir} + + + + + com.google.guava + guava + + + + + com.facebook.presto + presto-spi + provided + + + + io.airlift + slice + provided + + + + + org.testng + testng + test + + + + com.facebook.presto + presto-tests + test + + + + com.facebook.presto + presto-main + test + + + + com.facebook.presto + presto-main + test-jar + test + + + + diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java new file mode 100644 index 0000000000000..83af03bee1843 --- /dev/null +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java @@ -0,0 +1,129 @@ +/* + * 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 com.twitter.presto.functions; + +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.function.Description; +import com.facebook.presto.spi.function.ScalarFunction; +import com.facebook.presto.spi.function.SqlType; +import com.facebook.presto.spi.type.StandardTypes; + +import java.util.concurrent.TimeUnit; + +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; + +/* size in + * bits: 1 41 5 5 12 + * +-+-----------------------------------------+-----+-----+------------+ + * |0| milliseconds |clstr|instc| sequence | + * |0| since twepoch | id | id | number | + * +-+-----------------------------------------+-----+-----+------------+ + * | + * +- Most significant bit + */ +public class SnowflakeFunctions +{ + private static final long SequenceNumBits = 12L; + private static final long MaxSequenceNum = (1L << SequenceNumBits) - 1; + private static final long SequenceNumMask = MaxSequenceNum; + + private static final long InstanceIdBits = 5L; + private static final long MaxInstanceId = (1L << InstanceIdBits) - 1; + private static final long InstanceIdShift = SequenceNumBits; + private static final long InstanceIdMask = MaxInstanceId << InstanceIdShift; + + private static final long ClusterIdBits = 5L; + private static final long MaxClusterId = (1L << ClusterIdBits) - 1; + private static final long ClusterIdShift = InstanceIdShift + InstanceIdBits; + private static final long ClusterIdMask = MaxClusterId << ClusterIdShift; + + private static final long TimestampBits = 41L; + private static final long MaxTimestamp = (1L << TimestampBits) - 1; + private static final long TimestampShift = ClusterIdShift + ClusterIdBits; + private static final long TimestampMask = MaxTimestamp << TimestampShift; + + /* Twepoch is 2010-11-04T01:42:54Z. + * Value is in millis since Unix Epoch 1970-01-01T00:00:00Z. + */ + private static final long Twepoch = 1288834974657L; + private static final long FirstSnowflakeIdUnixTime = Twepoch + TimeUnit.DAYS.toMillis(1); // 1 day after Twepoch. + private static final long FirstSnowflakeId = firstSnowflakeIdFor(FirstSnowflakeIdUnixTime); + + private SnowflakeFunctions() + { + } + + @ScalarFunction("is_snowflake") + @Description("Check if a BIGINT is a Snowflake ID") + @SqlType(StandardTypes.BOOLEAN) + public static boolean isSnowflakeId(@SqlType(StandardTypes.BIGINT) long id) + { + return id >= FirstSnowflakeId; + } + + @ScalarFunction("first_snowflake_for") + @Description("Return the first snowflake ID given a timestamp") + @SqlType(StandardTypes.BIGINT) + public static long firstSnowflakeIdFor(@SqlType(StandardTypes.TIMESTAMP) long timestamp) + { + if (timestamp < FirstSnowflakeIdUnixTime) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Invalid UnixTimeMillis: UnixTimeMillis[" + timestamp + "] >= FirstSnowflakeIdUnixTime"); + } + return ((timestamp - Twepoch) << TimestampShift); + } + + @ScalarFunction("timestamp_from_snowflake") + @Description("Return the timestamp given a snowflake ID") + @SqlType(StandardTypes.TIMESTAMP) + public static long timestampFromSnowflakeId(@SqlType(StandardTypes.BIGINT) long id) + { + if (!isSnowflakeId(id)) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Not a Snowflake Id: " + id); + } + return ((id & TimestampMask) >> TimestampShift) + Twepoch; + } + + @ScalarFunction("cluster_id_from_snowflake") + @Description("Return the cluster id given a snowflake ID") + @SqlType(StandardTypes.BIGINT) + public static long clusterIdFromSnowflakeId(@SqlType(StandardTypes.BIGINT) long id) + { + if (!isSnowflakeId(id)) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Not a Snowflake Id: " + id); + } + return (id & ClusterIdMask) >> ClusterIdShift; + } + + @ScalarFunction("instance_id_from_snowflake") + @Description("Return the instance id given a snowflake ID") + @SqlType(StandardTypes.BIGINT) + public static long instanceIdFromSnowflakeId(@SqlType(StandardTypes.BIGINT) long id) + { + if (!isSnowflakeId(id)) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Not a Snowflake Id: " + id); + } + return (id & InstanceIdMask) >> InstanceIdShift; + } + + @ScalarFunction("sequence_num_from_snowflake") + @Description("Return the sequence number given a snowflake ID") + @SqlType(StandardTypes.BIGINT) + public static long sequenceNumFromSnowflakeId(@SqlType(StandardTypes.BIGINT) long id) + { + if (!isSnowflakeId(id)) { + throw new PrestoException(INVALID_FUNCTION_ARGUMENT, "Not a Snowflake Id: " + id); + } + return id & SequenceNumMask; + } +} diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterFunctionsPlugin.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterFunctionsPlugin.java new file mode 100644 index 0000000000000..edfd6211f63f8 --- /dev/null +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterFunctionsPlugin.java @@ -0,0 +1,33 @@ +/* + * 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 com.twitter.presto.functions; + +import com.facebook.presto.spi.Plugin; +import com.google.common.collect.ImmutableSet; + +import java.util.Set; + +public class TwitterFunctionsPlugin + implements Plugin +{ + @Override + public Set> getFunctions() + { + return ImmutableSet.>builder() + .add(TwitterStringFunctions.class) + .add(TwitterMapFunctions.class) + .add(SnowflakeFunctions.class) + .build(); + } +} diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java new file mode 100644 index 0000000000000..39859aafabb88 --- /dev/null +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java @@ -0,0 +1,56 @@ +/* + * 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 com.twitter.presto.functions; + +import com.facebook.presto.spi.block.Block; +import com.facebook.presto.spi.function.Description; +import com.facebook.presto.spi.function.ScalarFunction; +import com.facebook.presto.spi.function.SqlNullable; +import com.facebook.presto.spi.function.SqlType; +import com.facebook.presto.spi.function.TypeParameter; +import com.facebook.presto.spi.type.Type; + +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; + +public class TwitterMapFunctions +{ + private TwitterMapFunctions() + { + } + + @ScalarFunction("key_of_max_value") + @Description("Get the key of the entry of map that holding max value. If more than one entry holds the same max value, return null") + @TypeParameter("K") + @SqlType("K") + @SqlNullable + public static Object keyMaxValue(@TypeParameter("K") Type keyType, @SqlType("map(K,bigint)") Block map) + { + Object keyOfMaxValue = null; + long maxValue = Long.MIN_VALUE; + for (int position = 0; position < map.getPositionCount(); position += 2) { + Object key = readNativeValue(keyType, map, position); + long value = BIGINT.getLong(map, position + 1); + if (value > maxValue) { + keyOfMaxValue = key; + maxValue = value; + } + else if (value == maxValue) { + keyOfMaxValue = null; + } + } + + return keyOfMaxValue; + } +} diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java new file mode 100644 index 0000000000000..4bd9315b5d212 --- /dev/null +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java @@ -0,0 +1,102 @@ +/* + * 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 com.twitter.presto.functions; + +import com.facebook.presto.spi.ErrorCodeSupplier; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.block.Block; +import com.facebook.presto.spi.block.BlockBuilder; +import com.facebook.presto.spi.function.Description; +import com.facebook.presto.spi.function.LiteralParameters; +import com.facebook.presto.spi.function.ScalarFunction; +import com.facebook.presto.spi.function.SqlType; +import com.facebook.presto.spi.type.StandardTypes; +import com.google.common.primitives.Ints; +import io.airlift.slice.Slice; + +import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; +import static com.facebook.presto.spi.type.VarcharType.VARCHAR; +import static io.airlift.slice.SliceUtf8.offsetOfCodePoint; +import static java.lang.String.format; + +public class TwitterStringFunctions +{ + private TwitterStringFunctions() + { + } + + @ScalarFunction("split_every") + @Description("Splits the string on every character and returns an array") + @LiteralParameters("x") + @SqlType("array(varchar(x))") + public static Block str2array(@SqlType("varchar(x)") Slice utf8) + { + return str2array(utf8, 1, utf8.length() + 1); + } + + @ScalarFunction("split_every") + @Description("Splits the string on every given length of characters and returns an array") + @LiteralParameters("x") + @SqlType("array(varchar(x))") + public static Block str2array(@SqlType("varchar(x)") Slice utf8, @SqlType(StandardTypes.BIGINT) long length) + { + return str2array(utf8, length, utf8.length() / length + 1); + } + + @ScalarFunction("split_every") + @Description("Splits the string on every given length of characters and returns an array with the size at most of the given limit") + @LiteralParameters("x") + @SqlType("array(varchar(x))") + public static Block str2array(@SqlType("varchar(x)") Slice utf8, @SqlType(StandardTypes.BIGINT) long length, @SqlType(StandardTypes.BIGINT) long limit) + { + checkCondition(limit > 0, INVALID_FUNCTION_ARGUMENT, "Limit must be positive"); + checkCondition(limit <= Integer.MAX_VALUE, INVALID_FUNCTION_ARGUMENT, "Limit is too large"); + checkCondition(length > 0, INVALID_FUNCTION_ARGUMENT, "Length must be positive"); + checkCondition(length <= Integer.MAX_VALUE, INVALID_FUNCTION_ARGUMENT, "Length is too large"); + BlockBuilder parts = VARCHAR.createBlockBuilder(null, 1, Ints.saturatedCast(length)); + // If limit is one, the last and only element is the complete string + if (limit == 1) { + VARCHAR.writeSlice(parts, utf8); + return parts.build(); + } + + int index = offsetOfCodePoint(utf8, 0); + while (index < utf8.length()) { + int splitIndex = offsetOfCodePoint(utf8, index, Ints.saturatedCast(length)); + // Enough remaining string? + if (splitIndex < 0) { + break; + } + // Add the part from current index to found split + VARCHAR.writeSlice(parts, utf8, index, splitIndex - index); + // Continue after current end + index = splitIndex; + // Reached limit-1 parts so we can stop + if (parts.getPositionCount() == limit - 1) { + break; + } + } + // Rest of string + VARCHAR.writeSlice(parts, utf8, index, utf8.length() - index); + + return parts.build(); + } + + private static void checkCondition(boolean condition, ErrorCodeSupplier errorCode, String formatString, Object... args) + { + if (!condition) { + throw new PrestoException(errorCode, format(formatString, args)); + } + } +} diff --git a/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java new file mode 100644 index 0000000000000..1ce5ac746b025 --- /dev/null +++ b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java @@ -0,0 +1,94 @@ +/* + * 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 com.twitter.presto.functions; + +import com.facebook.presto.operator.scalar.AbstractTestFunctions; +import com.facebook.presto.spi.type.ArrayType; +import com.facebook.presto.spi.type.SqlTimestamp; +import com.google.common.collect.ImmutableList; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; +import static com.facebook.presto.spi.type.BigintType.BIGINT; +import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; +import static com.facebook.presto.spi.type.DoubleType.DOUBLE; +import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; +import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.spi.type.VarcharType.createVarcharType; + +public class TestTwitterFunctions + extends AbstractTestFunctions +{ + @BeforeClass + public void setUp() + { + functionAssertions.addFunctions(extractFunctions(new TwitterFunctionsPlugin().getFunctions())); + } + + @Test + public void testStr2Array() + { + assertFunction("SPLIT_EVERY('')", new ArrayType(createVarcharType(0)), ImmutableList.of("")); + assertFunction("SPLIT_EVERY('abc')", new ArrayType(createVarcharType(3)), ImmutableList.of("a", "b", "c")); + assertFunction("SPLIT_EVERY('a.b.c')", new ArrayType(createVarcharType(5)), ImmutableList.of("a", ".", "b", ".", "c")); + assertFunction("SPLIT_EVERY('...')", new ArrayType(createVarcharType(3)), ImmutableList.of(".", ".", ".")); + // Test str_to_array for non-ASCII + assertFunction("SPLIT_EVERY('\u4FE1\u5FF5,\u7231,\u5E0C\u671B')", new ArrayType(createVarcharType(7)), ImmutableList.of("\u4FE1", "\u5FF5", ",", "\u7231", ",", "\u5E0C", "\u671B")); + // Test argument length + assertFunction("SPLIT_EVERY('a.b.c', 2)", new ArrayType(createVarcharType(5)), ImmutableList.of("a.", "b.", "c")); + // Test argument limit + assertFunction("SPLIT_EVERY('a.b.c', 2, 1)", new ArrayType(createVarcharType(5)), ImmutableList.of("a.b.c")); + assertFunction("SPLIT_EVERY('a.b.c', 2, 2)", new ArrayType(createVarcharType(5)), ImmutableList.of("a.", "b.c")); + } + + private static SqlTimestamp toTimestampUTC(long millis) + { + return new SqlTimestamp(millis, UTC_KEY); + } + + @Test + public void testSnowflake() + { + assertFunction("IS_SNOWFLAKE(1000)", BOOLEAN, false); + assertFunction("IS_SNOWFLAKE(265605588183052288)", BOOLEAN, true); + assertFunction("IS_SNOWFLAKE(-265605588183052288)", BOOLEAN, false); + + assertFunction("FIRST_SNOWFLAKE_FOR(from_unixtime(1352160281.593))", BIGINT, 265605588182892544L); + assertInvalidFunction("FIRST_SNOWFLAKE_FOR(from_unixtime(1000))", "Invalid UnixTimeMillis: UnixTimeMillis[1000000] >= FirstSnowflakeIdUnixTime"); + + assertFunction("TIMESTAMP_FROM_SNOWFLAKE(265605588183052288)", TIMESTAMP, toTimestampUTC(1352160281593L)); + assertInvalidFunction("TIMESTAMP_FROM_SNOWFLAKE(1000)", "Not a Snowflake Id: 1000"); + + assertFunction("CLUSTER_ID_FROM_SNOWFLAKE(265605588183052288)", BIGINT, 1L); + assertInvalidFunction("CLUSTER_ID_FROM_SNOWFLAKE(1000)", "Not a Snowflake Id: 1000"); + + assertFunction("INSTANCE_ID_FROM_SNOWFLAKE(265605588183052288)", BIGINT, 7L); + assertInvalidFunction("INSTANCE_ID_FROM_SNOWFLAKE(1000)", "Not a Snowflake Id: 1000"); + + assertFunction("SEQUENCE_NUM_FROM_SNOWFLAKE(265605588183052288)", BIGINT, 0L); + assertInvalidFunction("SEQUENCE_NUM_FROM_SNOWFLAKE(1000)", "Not a Snowflake Id: 1000"); + } + + @Test + public void testKeyOfMaxValue() + { + assertFunction("KEY_OF_MAX_VALUE(MAP(ARRAY['foo', 'bar'], ARRAY[1, 2]))", createVarcharType(3), "bar"); + assertFunction("KEY_OF_MAX_VALUE(CAST(MAP(ARRAY[100.0, 200.0], ARRAY[1, 2]) AS MAP(DOUBLE, BIGINT)))", DOUBLE, 200.0); + assertFunction("KEY_OF_MAX_VALUE(CAST(MAP(ARRAY[100, 200], ARRAY[1, 2]) AS MAP(BIGINT, BIGINT)))", BIGINT, 200L); + assertFunction("KEY_OF_MAX_VALUE(CAST(MAP(ARRAY[1, 0], ARRAY[1,2]) AS MAP(BOOLEAN, BIGINT)))", BOOLEAN, false); + + assertFunction("KEY_OF_MAX_VALUE(CAST(MAP(ARRAY[1, 0], ARRAY[2,2]) AS MAP(BOOLEAN, BIGINT)))", BOOLEAN, null); + } +} diff --git a/presto-twitter-server/src/main/provisio/twitter.xml b/presto-twitter-server/src/main/provisio/twitter.xml index 39a3a86b023bd..c5b09a23c20ac 100644 --- a/presto-twitter-server/src/main/provisio/twitter.xml +++ b/presto-twitter-server/src/main/provisio/twitter.xml @@ -7,4 +7,10 @@ + + + + + + From 5b2c5e94b762d51d8b50c7b2a9970cb9a84ad867 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Wed, 8 Jan 2020 16:46:19 -0800 Subject: [PATCH 092/129] fix timezone for TestTwitterFunctions (#230) --- .../com/twitter/presto/functions/TestTwitterFunctions.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java index 1ce5ac746b025..71d54aea612f4 100644 --- a/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java +++ b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java @@ -16,6 +16,7 @@ import com.facebook.presto.operator.scalar.AbstractTestFunctions; import com.facebook.presto.spi.type.ArrayType; import com.facebook.presto.spi.type.SqlTimestamp; +import com.facebook.presto.testing.TestingSession; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -24,7 +25,6 @@ import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimeZoneKey.UTC_KEY; import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; import static com.facebook.presto.spi.type.VarcharType.createVarcharType; @@ -55,7 +55,7 @@ public void testStr2Array() private static SqlTimestamp toTimestampUTC(long millis) { - return new SqlTimestamp(millis, UTC_KEY); + return new SqlTimestamp(millis, TestingSession.DEFAULT_TIME_ZONE_KEY); } @Test From a1aab313172a5d5328c44b3edb1927da454a3d6d Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Wed, 8 Jan 2020 21:13:13 -0800 Subject: [PATCH 093/129] Port Presto Twitter Gateway (#231) --- pom.xml | 69 ++++++ .../unnest/UnnestOperatorBlockUtil.java | 2 +- .../TestPostgreSqlCaseInsensitiveMapping.java | 2 +- presto-twitter-gateway/etc/config.properties | 2 + presto-twitter-gateway/pom.xml | 207 ++++++++++++++++++ .../twitter/presto/gateway/GatewayConfig.java | 92 ++++++++ .../twitter/presto/gateway/GatewayModule.java | 70 ++++++ .../presto/gateway/GatewayResource.java | 77 +++++++ .../twitter/presto/gateway/PrestoGateway.java | 67 ++++++ .../twitter/presto/gateway/RequestInfo.java | 86 ++++++++ .../gateway/cluster/ClusterManager.java | 26 +++ .../cluster/ClusterManagerResource.java | 45 ++++ .../gateway/cluster/ClusterSelector.java | 24 ++ .../cluster/ClusterStatusResource.java | 147 +++++++++++++ .../gateway/cluster/ClusterStatusTracker.java | 160 ++++++++++++++ .../gateway/cluster/ForQueryTracker.java | 31 +++ .../gateway/cluster/RandomSelector.java | 53 +++++ .../gateway/cluster/RemoteClusterInfo.java | 81 +++++++ .../gateway/cluster/RemoteQueryInfo.java | 60 +++++ .../presto/gateway/cluster/RemoteState.java | 110 ++++++++++ .../gateway/cluster/StaticClusterManager.java | 59 +++++ .../presto/gateway/query/QueryCategory.java | 21 ++ .../presto/gateway/query/QueryClassifier.java | 63 ++++++ .../presto/gateway/query/StatementUtils.java | 146 ++++++++++++ .../presto/gateway/TestGatewayConfig.java | 52 +++++ .../gateway/TestStaticClusterManager.java | 175 +++++++++++++++ 26 files changed, 1925 insertions(+), 2 deletions(-) create mode 100644 presto-twitter-gateway/etc/config.properties create mode 100644 presto-twitter-gateway/pom.xml create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java create mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java create mode 100644 presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java create mode 100644 presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java diff --git a/pom.xml b/pom.xml index a4759895a6c46..4a0b3573cdfba 100644 --- a/pom.xml +++ b/pom.xml @@ -162,6 +162,7 @@ twitter-eventlistener-plugin presto-twitter-server presto-twitter-functions + presto-twitter-gateway @@ -1467,6 +1468,54 @@ 1.1.7.1 + + org.apache.curator + curator-recipes + 4.0.0 + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-framework + 4.0.0 + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-client + 4.0.0 + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-test + 2.12.0 + + + org.apache.zookeeper + zookeeper + + + + com.github.luben zstd-jni @@ -1493,6 +1542,26 @@ + + com.101tec + zkclient + 0.10 + + + log4j + log4j + + + org.slf4j + slf4j-log4j12 + + + org.apache.zookeeper + zookeeper + + + + org.jgrapht jgrapht-core diff --git a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperatorBlockUtil.java b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperatorBlockUtil.java index 7a666b278694e..a305dbca594fb 100644 --- a/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperatorBlockUtil.java +++ b/presto-main/src/main/java/com/facebook/presto/operator/unnest/UnnestOperatorBlockUtil.java @@ -23,7 +23,7 @@ private UnnestOperatorBlockUtil() {} // See java.util.ArrayList for an explanation static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; - // Copied from io.prestosql.spi.block.BlockUtil#calculateNewArraySize + // Copied from com.facebook.presto.spi.block.BlockUtil#calculateNewArraySize static int calculateNewArraySize(int currentSize) { // grow array by 50% diff --git a/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlCaseInsensitiveMapping.java b/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlCaseInsensitiveMapping.java index ec606b3fd9976..d05b43cf52c32 100644 --- a/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlCaseInsensitiveMapping.java +++ b/presto-postgresql/src/test/java/com/facebook/presto/plugin/postgresql/TestPostgreSqlCaseInsensitiveMapping.java @@ -134,7 +134,7 @@ public void testSchemaNameClash() AutoCloseable ignore2 = withSchema(otherSchemaName); AutoCloseable ignore3 = withTable(schemaName + ".some_table_name", "(c varchar(5))")) { assertThat(computeActual("SHOW SCHEMAS").getOnlyColumn()).contains("casesensitivename"); - assertThat(computeActual("SHOW SCHEMAS").getOnlyColumn().filter("casesensitivename"::equals)).hasSize(1); // TODO change io.prestosql.plugin.jdbc.JdbcClient.getSchemaNames to return a List + assertThat(computeActual("SHOW SCHEMAS").getOnlyColumn().filter("casesensitivename"::equals)).hasSize(1); // TODO change com.facebook.presto.plugin.jdbc.JdbcClient.getSchemaNames to return a List assertQueryFails("SHOW TABLES FROM casesensitivename", "Failed to find remote schema name:.*Multiple entries with same key.*"); assertQueryFails("SELECT * FROM casesensitivename.some_table_name", "Failed to find remote schema name:.*Multiple entries with same key.*"); } diff --git a/presto-twitter-gateway/etc/config.properties b/presto-twitter-gateway/etc/config.properties new file mode 100644 index 0000000000000..7e304027a676b --- /dev/null +++ b/presto-twitter-gateway/etc/config.properties @@ -0,0 +1,2 @@ +node.environment=test +http-server.http.port=8088 diff --git a/presto-twitter-gateway/pom.xml b/presto-twitter-gateway/pom.xml new file mode 100644 index 0000000000000..ebc9151aaaa6a --- /dev/null +++ b/presto-twitter-gateway/pom.xml @@ -0,0 +1,207 @@ + + + 4.0.0 + + + presto-root + com.facebook.presto + 0.228 + + + presto-twitter-gateway + Twitter's Presto Gateway Service + + + + ${project.parent.basedir} + main.java.gateway.PrestoGateway + + + + + com.facebook.presto + presto-spi + + + + com.facebook.presto + presto-client + + + + com.facebook.presto + presto-parser + + + + io.airlift + node + + + + io.airlift + units + + + + io.airlift + trace-token + + + + io.airlift + json + + + + io.airlift + bootstrap + + + + io.airlift + http-client + + + + io.airlift + http-server + + + + io.airlift + jaxrs + + + + io.airlift + log + + + + io.airlift + configuration + + + + io.airlift + log-manager + + + + io.airlift + event + + + + io.airlift + jmx + + + + io.airlift + jmx-http + + + + io.airlift + concurrent + + + + com.google.guava + guava + + + + com.google.inject + guice + + + + javax.ws.rs + javax.ws.rs-api + + + + javax.validation + validation-api + + + + com.google.code.findbugs + jsr305 + + + + javax.servlet + javax.servlet-api + + + + javax.annotation + javax.annotation-api + + + + javax.inject + javax.inject + + + + com.fasterxml.jackson.core + jackson-annotations + + + + com.fasterxml.jackson.core + jackson-databind + + + + com.fasterxml.jackson.core + jackson-core + + + + org.weakref + jmxutils + + + + + org.testng + testng + test + + + + com.facebook.presto + presto-main + test + + + + com.facebook.presto + presto-tpch + test + + + + com.facebook.presto + presto-jdbc + test + + + org.apache.curator + curator-test + test + + + + com.101tec + zkclient + test + + + diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java new file mode 100644 index 0000000000000..a2b2df3b7b83f --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java @@ -0,0 +1,92 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.google.common.base.Splitter; +import io.airlift.configuration.Config; +import io.airlift.configuration.ConfigDescription; + +import javax.validation.constraints.NotNull; + +import java.net.URI; +import java.util.List; + +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.Streams.stream; + +public class GatewayConfig +{ + private static final Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings(); + + private String version = getClass().getPackage().getImplementationVersion(); + private ClusterManagerType clusterManagerType; + private List clusters; + + public enum ClusterManagerType + { + STATIC + } + + @NotNull(message = "Gateway version cannot be automatically determined") + public String getVersion() + { + return version; + } + + @Config("gateway.version") + public GatewayConfig setVersion(String version) + { + this.version = version; + return this; + } + + @NotNull + public ClusterManagerType getClusterManagerType() + { + return clusterManagerType; + } + + @Config("gateway.cluster-manager.type") + @ConfigDescription("Cluster manager type (supported types: STATIC)") + public GatewayConfig setClusterManagerType(String type) + { + if (type == null) { + clusterManagerType = null; + return this; + } + + clusterManagerType = ClusterManagerType.valueOf(type); + return this; + } + + @NotNull + public List getClusters() + { + return clusters; + } + + @Config("gateway.cluster-manager.static.cluster-list") + @ConfigDescription("List of Presto clusters behind the gateway") + public GatewayConfig setClusters(String clusterList) + { + if (clusterList == null) { + this.clusters = null; + return this; + } + this.clusters = stream(SPLITTER.split(clusterList)) + .map(URI::create) + .collect(toImmutableList()); + return this; + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java new file mode 100644 index 0000000000000..3d80dda5c88ad --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java @@ -0,0 +1,70 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.facebook.presto.client.NodeVersion; +import com.google.inject.Binder; +import com.google.inject.Scopes; +import com.twitter.presto.gateway.cluster.ClusterManager; +import com.twitter.presto.gateway.cluster.ClusterManagerResource; +import com.twitter.presto.gateway.cluster.ClusterSelector; +import com.twitter.presto.gateway.cluster.ClusterStatusResource; +import com.twitter.presto.gateway.cluster.ClusterStatusTracker; +import com.twitter.presto.gateway.cluster.ForQueryTracker; +import com.twitter.presto.gateway.cluster.RandomSelector; +import com.twitter.presto.gateway.cluster.StaticClusterManager; +import io.airlift.configuration.AbstractConfigurationAwareModule; +import io.airlift.units.Duration; + +import static com.twitter.presto.gateway.GatewayConfig.ClusterManagerType; +import static io.airlift.configuration.ConfigBinder.configBinder; +import static io.airlift.http.client.HttpClientBinder.httpClientBinder; +import static io.airlift.jaxrs.JaxrsBinder.jaxrsBinder; +import static java.util.concurrent.TimeUnit.SECONDS; + +public class GatewayModule + extends AbstractConfigurationAwareModule +{ + @Override + protected void setup(Binder binder) + { + configBinder(binder).bindConfig(GatewayConfig.class); + binder.bind(ClusterSelector.class).to(RandomSelector.class).in(Scopes.SINGLETON); + + GatewayConfig gatewayConfig = buildConfigObject(GatewayConfig.class); + ClusterManagerType type = buildConfigObject(GatewayConfig.class).getClusterManagerType(); + switch (type) { + case STATIC: + binder.bind(ClusterManager.class).to(StaticClusterManager.class).in(Scopes.SINGLETON); + break; + default: + throw new AssertionError("Unsupported cluster manager type: " + type); + } + + httpClientBinder(binder).bindHttpClient("query-tracker", ForQueryTracker.class) + .withConfigDefaults(config -> { + config.setIdleTimeout(new Duration(30, SECONDS)); + config.setRequestTimeout(new Duration(10, SECONDS)); + }); + + NodeVersion nodeVersion = new NodeVersion(gatewayConfig.getVersion()); + binder.bind(NodeVersion.class).toInstance(nodeVersion); + + binder.bind(ClusterStatusTracker.class).in(Scopes.SINGLETON); + + jaxrsBinder(binder).bind(GatewayResource.class); + jaxrsBinder(binder).bind(ClusterManagerResource.class); + jaxrsBinder(binder).bind(ClusterStatusResource.class); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java new file mode 100644 index 0000000000000..b46e51149ec57 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java @@ -0,0 +1,77 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.google.inject.Inject; +import com.twitter.presto.gateway.cluster.ClusterSelector; +import io.airlift.log.Logger; + +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.Response; + +import java.net.URI; + +import static io.airlift.http.client.HttpUriBuilder.uriBuilderFrom; +import static java.util.Objects.requireNonNull; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; +import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE; +import static javax.ws.rs.core.Response.Status.BAD_GATEWAY; + +@Path("/") +public class GatewayResource +{ + private static final Logger log = Logger.get(GatewayResource.class); + + private final ClusterSelector clusterSelector; + + @Inject + public GatewayResource(ClusterSelector clusterSelector) + { + this.clusterSelector = requireNonNull(clusterSelector, "clusterSelector is null"); + } + + @GET + @Path("/v1/gateway") + public String getGateInfo() + { + return "hello world"; + } + + @POST + @Path("/v1/statement") + @Produces(APPLICATION_JSON) + public Response routeQuery(String statement, @Context HttpServletRequest servletRequest) + { + RequestInfo requestInfo = new RequestInfo(servletRequest, statement); + URI coordinatorUri = clusterSelector.getPrestoCluster(requestInfo).orElseThrow(() -> badRequest(BAD_GATEWAY, "No active server available")); + URI statementUri = uriBuilderFrom(coordinatorUri).replacePath("/v1/statement").build(); + log.info("route query to %s", statementUri); + return Response.temporaryRedirect(statementUri).build(); + } + + private static WebApplicationException badRequest(Response.Status status, String message) + { + throw new WebApplicationException( + Response.status(status) + .type(TEXT_PLAIN_TYPE) + .entity(message) + .build()); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java new file mode 100644 index 0000000000000..0c948fd9d512a --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java @@ -0,0 +1,67 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.google.common.collect.ImmutableList; +import com.google.inject.Module; +import io.airlift.bootstrap.Bootstrap; +import io.airlift.event.client.EventModule; +import io.airlift.http.server.HttpServerModule; +import io.airlift.jaxrs.JaxrsModule; +import io.airlift.jmx.JmxHttpModule; +import io.airlift.jmx.JmxModule; +import io.airlift.json.JsonModule; +import io.airlift.log.LogJmxModule; +import io.airlift.log.Logger; +import io.airlift.node.NodeModule; +import io.airlift.tracetoken.TraceTokenModule; +import org.weakref.jmx.guice.MBeanModule; + +public class PrestoGateway +{ + private PrestoGateway() {} + + public static void start(Module... extraModules) + { + Bootstrap app = new Bootstrap(ImmutableList.builder() + .add(new NodeModule()) + .add(new HttpServerModule()) + .add(new JsonModule()) + .add(new JaxrsModule(true)) + .add(new MBeanModule()) + .add(new JmxModule()) + .add(new JmxHttpModule()) + .add(new TraceTokenModule()) + .add(new LogJmxModule()) + .add(new EventModule()) + .add(new GatewayModule()) + .add(extraModules) + .build()); + + Logger log = Logger.get(PrestoGateway.class); + try { + app.strictConfig().initialize(); + log.info("======== SERVER STARTED ========"); + } + catch (Throwable t) { + log.error(t); + System.exit(1); + } + } + + public static void main(String[] args) + { + start(); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java new file mode 100644 index 0000000000000..d3229f68b631a --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java @@ -0,0 +1,86 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.facebook.presto.spi.security.Identity; + +import javax.annotation.Nullable; +import javax.servlet.http.HttpServletRequest; +import javax.validation.constraints.NotNull; + +import java.util.Optional; + +import static com.facebook.presto.client.PrestoHeaders.PRESTO_CATALOG; +import static com.facebook.presto.client.PrestoHeaders.PRESTO_SCHEMA; +import static com.facebook.presto.client.PrestoHeaders.PRESTO_SOURCE; +import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; +import static com.google.common.base.Strings.emptyToNull; +import static com.google.common.base.Strings.nullToEmpty; +import static java.util.Objects.requireNonNull; + +public class RequestInfo +{ + private final String catalog; + private final String schema; + private final String source; + private final Identity identity; + + private final String query; + + public RequestInfo(HttpServletRequest servletRequest, String query) + { + this.catalog = trimEmptyToNull(servletRequest.getHeader(PRESTO_CATALOG)); + this.schema = trimEmptyToNull(servletRequest.getHeader(PRESTO_SCHEMA)); + this.source = servletRequest.getHeader(PRESTO_SOURCE); + this.identity = new Identity( + trimEmptyToNull(servletRequest.getHeader(PRESTO_USER)), + Optional.ofNullable(servletRequest.getUserPrincipal())); + this.query = requireNonNull(query, "query is null"); + } + + @Nullable + public String getCatalog() + { + return catalog; + } + + @Nullable + public String getSchema() + { + return schema; + } + + @Nullable + public String getSource() + { + return source; + } + + @NotNull + public Identity getIdentity() + { + return identity; + } + + @NotNull + public String getQuery() + { + return query; + } + + private static String trimEmptyToNull(String value) + { + return emptyToNull(nullToEmpty(value).trim()); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java new file mode 100644 index 0000000000000..54059adcc64d8 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java @@ -0,0 +1,26 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.twitter.presto.gateway.query.QueryCategory; + +import java.net.URI; +import java.util.List; + +public interface ClusterManager +{ + List getAllClusters(); + + List getClusters(QueryCategory category); +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java new file mode 100644 index 0000000000000..0fcbee0277a86 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java @@ -0,0 +1,45 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.google.inject.Inject; +import io.airlift.log.Logger; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +import java.net.URI; +import java.util.List; + +import static java.util.Objects.requireNonNull; + +@Path("/v1/gateway/managers") +public class ClusterManagerResource +{ + private static final Logger log = Logger.get(ClusterStatusResource.class); + + private final ClusterManager clusterManager; + + @Inject + public ClusterManagerResource(ClusterManager clusterManager) + { + this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); + } + + @GET + public List getAllClusters() + { + return clusterManager.getAllClusters(); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java new file mode 100644 index 0000000000000..e040f9b853a86 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java @@ -0,0 +1,24 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.twitter.presto.gateway.RequestInfo; + +import java.net.URI; +import java.util.Optional; + +public interface ClusterSelector +{ + Optional getPrestoCluster(RequestInfo request); +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java new file mode 100644 index 0000000000000..2a79a6ac45c58 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java @@ -0,0 +1,147 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.facebook.presto.client.NodeVersion; +import com.facebook.presto.client.ServerInfo; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import com.google.inject.Inject; +import io.airlift.log.Logger; +import io.airlift.node.NodeInfo; + +import javax.annotation.concurrent.Immutable; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; + +import java.util.List; +import java.util.Optional; + +import static java.util.Objects.requireNonNull; +import static javax.ws.rs.core.MediaType.APPLICATION_JSON; + +@Path("/") +public class ClusterStatusResource +{ + private static final Logger log = Logger.get(ClusterStatusResource.class); + + private final NodeVersion nodeVersion; + private final String environment; + private final ClusterStatusTracker clusterStatusTracker; + + @Inject + public ClusterStatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ClusterStatusTracker clusterStatusTracker) + { + this.nodeVersion = requireNonNull(nodeVersion, "nodeVersion is null"); + this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); + this.clusterStatusTracker = requireNonNull(clusterStatusTracker, "clusterStatusTracker is null"); + } + + // The web UI depend on the following service endpoints. + @GET + @Path("/v1/info") + @Produces(APPLICATION_JSON) + public ServerInfo getInfo() + { + return new ServerInfo(nodeVersion, environment, true, false, Optional.empty()); + } + + @GET + @Path("/v1/cluster") + @Produces(APPLICATION_JSON) + public ClusterStats getClusterStats() + { + return new ClusterStats( + clusterStatusTracker.getRunningQueries(), + clusterStatusTracker.getBlockedQueries(), + clusterStatusTracker.getQueuedQueries(), + clusterStatusTracker.getClusterCount(), + clusterStatusTracker.getActiveWorkers(), + clusterStatusTracker.getRunningDrivers()); + } + + @GET + @Path("/v1/query") + public List getAllQueryInfo(@QueryParam("state") String stateFilter) + { + return clusterStatusTracker.getAllQueryInfos(); + } + + @Immutable + public static class ClusterStats + { + private final long runningQueries; + private final long blockedQueries; + private final long queuedQueries; + private final long clusterCount; + private final long activeWorkers; + private final long runningDrivers; + + @JsonCreator + public ClusterStats( + @JsonProperty("runningQueries") long runningQueries, + @JsonProperty("blockedQueries") long blockedQueries, + @JsonProperty("queuedQueries") long queuedQueries, + @JsonProperty("clusterCount") long clusterCount, + @JsonProperty("activeWorkers") long activeWorkers, + @JsonProperty("runningDrivers") long runningDrivers) + { + this.runningQueries = runningQueries; + this.blockedQueries = blockedQueries; + this.queuedQueries = queuedQueries; + this.clusterCount = clusterCount; + this.activeWorkers = activeWorkers; + this.runningDrivers = runningDrivers; + } + + @JsonProperty + public long getRunningQueries() + { + return runningQueries; + } + + @JsonProperty + public long getBlockedQueries() + { + return blockedQueries; + } + + @JsonProperty + public long getQueuedQueries() + { + return queuedQueries; + } + + @JsonProperty + public long getClusterCount() + { + return clusterCount; + } + + @JsonProperty + public long getActiveWorkers() + { + return activeWorkers; + } + + @JsonProperty + public long getRunningDrivers() + { + return runningDrivers; + } + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java new file mode 100644 index 0000000000000..7108afd3ae1d0 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java @@ -0,0 +1,160 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.ImmutableList; +import com.google.inject.Inject; +import io.airlift.http.client.HttpClient; +import io.airlift.log.Logger; + +import javax.annotation.PostConstruct; + +import java.net.URI; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.google.common.collect.Sets.difference; +import static com.google.common.collect.Sets.newHashSet; +import static io.airlift.concurrent.Threads.threadsNamed; +import static io.airlift.http.client.HttpUriBuilder.uriBuilderFrom; +import static java.util.Objects.requireNonNull; +import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; + +public class ClusterStatusTracker +{ + private static final Logger log = Logger.get(ClusterStatusTracker.class); + private static final String QUERY_INFO = "/v1/query"; + private static final String CLUSTER_INFO = "/v1/cluster"; + + private final ClusterManager clusterManager; + private final HttpClient httpClient; + private final ScheduledExecutorService queryInfoUpdateExecutor; + + // Cluster status + private final ConcurrentHashMap remoteClusterInfos = new ConcurrentHashMap<>(); + private final ConcurrentHashMap remoteQueryInfos = new ConcurrentHashMap<>(); + + @Inject + public ClusterStatusTracker( + ClusterManager clusterManager, + @ForQueryTracker HttpClient httpClient) + { + this.httpClient = requireNonNull(httpClient, "httpClient is null"); + this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); + this.queryInfoUpdateExecutor = newSingleThreadScheduledExecutor(threadsNamed("query-info-poller-%s")); + } + + @PostConstruct + public void startPollingQueryInfo() + { + clusterManager.getAllClusters().stream() + .forEach(uri -> { + remoteClusterInfos.put(uri, createRemoteClusterInfo(uri)); + remoteQueryInfos.put(uri, createRemoteQueryInfo(uri)); + }); + + queryInfoUpdateExecutor.scheduleWithFixedDelay(() -> { + try { + pollQueryInfos(); + } + catch (Exception e) { + log.error(e, "Error polling list of queries"); + } + }, 5, 5, TimeUnit.SECONDS); + + pollQueryInfos(); + } + + private void pollQueryInfos() + { + Set allClusters = newHashSet(clusterManager.getAllClusters()); + Set inactiveClusters = difference(remoteQueryInfos.keySet(), allClusters).immutableCopy(); + remoteQueryInfos.keySet().removeAll(inactiveClusters); + + allClusters.stream() + .forEach(uri -> { + remoteClusterInfos.putIfAbsent(uri, createRemoteClusterInfo(uri)); + remoteQueryInfos.putIfAbsent(uri, createRemoteQueryInfo(uri)); + }); + + remoteClusterInfos.values().forEach(RemoteClusterInfo::asyncRefresh); + remoteQueryInfos.values().forEach(RemoteQueryInfo::asyncRefresh); + } + + public long getRunningQueries() + { + return remoteClusterInfos.values().stream() + .mapToLong(RemoteClusterInfo::getRunningQueries) + .sum(); + } + + public long getBlockedQueries() + { + return remoteClusterInfos.values().stream() + .mapToLong(RemoteClusterInfo::getBlockedQueries) + .sum(); + } + + public long getQueuedQueries() + { + return remoteClusterInfos.values().stream() + .mapToLong(RemoteClusterInfo::getQueuedQueries) + .sum(); + } + + public long getClusterCount() + { + return remoteClusterInfos.entrySet().size(); + } + + public long getActiveWorkers() + { + return remoteClusterInfos.values().stream() + .mapToLong(RemoteClusterInfo::getActiveWorkers) + .sum(); + } + + public long getRunningDrivers() + { + return remoteClusterInfos.values().stream() + .mapToLong(RemoteClusterInfo::getRunningDrivers) + .sum(); + } + + public List getAllQueryInfos() + { + ImmutableList.Builder builder = ImmutableList.builder(); + remoteQueryInfos.forEach((coordinator, remoteQueryInfo) -> + builder.addAll(remoteQueryInfo.getQueryList().orElse(ImmutableList.of()).stream() + .map(queryInfo -> ((ObjectNode) queryInfo).put("coordinatorUri", coordinator.toASCIIString())) + .collect(toImmutableList()))); + return builder.build(); + } + + private RemoteQueryInfo createRemoteQueryInfo(URI uri) + { + return new RemoteQueryInfo(httpClient, uriBuilderFrom(uri).appendPath(QUERY_INFO).build()); + } + + private RemoteClusterInfo createRemoteClusterInfo(URI uri) + { + return new RemoteClusterInfo(httpClient, uriBuilderFrom(uri).appendPath(CLUSTER_INFO).build()); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java new file mode 100644 index 0000000000000..4bc1d0f3c9d39 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java @@ -0,0 +1,31 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import javax.inject.Qualifier; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Retention(RUNTIME) +@Target({FIELD, PARAMETER, METHOD}) +@Qualifier +public @interface ForQueryTracker +{ +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java new file mode 100644 index 0000000000000..19d048337edc0 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java @@ -0,0 +1,53 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.twitter.presto.gateway.RequestInfo; +import com.twitter.presto.gateway.query.QueryCategory; + +import javax.inject.Inject; + +import java.net.URI; +import java.util.List; +import java.util.Optional; +import java.util.Random; + +import static com.twitter.presto.gateway.query.QueryClassifier.classify; +import static java.util.Objects.requireNonNull; + +public class RandomSelector + implements ClusterSelector +{ + private static final Random random = new Random(); + + private final ClusterManager clusterManager; + + @Inject + public RandomSelector(ClusterManager clusterManager) + { + this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); + } + + @Override + public Optional getPrestoCluster(RequestInfo request) + { + QueryCategory category = classify(request); + List candidates = clusterManager.getClusters(category); + if (candidates.isEmpty()) { + return Optional.empty(); + } + + return Optional.of(candidates.get(random.nextInt(candidates.size()))); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java new file mode 100644 index 0000000000000..2f6500facf4f8 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java @@ -0,0 +1,81 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.airlift.http.client.HttpClient; +import io.airlift.log.Logger; + +import java.net.URI; +import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; + +public class RemoteClusterInfo + extends RemoteState +{ + private static final ObjectMapper mapper = new ObjectMapper(); + private static final Logger log = Logger.get(RemoteClusterInfo.class); + private static final String RUNNING_QUERIES = "runningQueries"; + private static final String BLOCKED_QUERIES = "blockedQueries"; + private static final String QUEUED_QUERIES = "queuedQueries"; + private static final String ACTIVE_WORKERS = "activeWorkers"; + private static final String RUNNING_DRIVERS = "runningDrivers"; + + private final AtomicLong runningQueries = new AtomicLong(); + private final AtomicLong blockedQueries = new AtomicLong(); + private final AtomicLong queuedQueries = new AtomicLong(); + private final AtomicLong activeWorkers = new AtomicLong(); + private final AtomicLong runningDrivers = new AtomicLong(); + + public RemoteClusterInfo(HttpClient httpClient, URI remoteUri) + { + super(httpClient, remoteUri); + } + + public void handleResponse(JsonNode response) + { + Map fields = mapper.convertValue(response, Map.class); + runningQueries.set(fields.get(RUNNING_QUERIES)); + blockedQueries.set(fields.get(BLOCKED_QUERIES)); + queuedQueries.set(fields.get(QUEUED_QUERIES)); + activeWorkers.set(fields.get(ACTIVE_WORKERS)); + runningDrivers.set(fields.get(RUNNING_DRIVERS)); + } + + public long getRunningQueries() + { + return runningQueries.get(); + } + + public long getBlockedQueries() + { + return blockedQueries.get(); + } + + public long getQueuedQueries() + { + return queuedQueries.get(); + } + + public long getActiveWorkers() + { + return activeWorkers.get(); + } + + public long getRunningDrivers() + { + return runningDrivers.get(); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java new file mode 100644 index 0000000000000..7c0d616430604 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java @@ -0,0 +1,60 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectReader; +import io.airlift.http.client.HttpClient; +import io.airlift.log.Logger; + +import javax.annotation.concurrent.ThreadSafe; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.atomic.AtomicReference; + +@ThreadSafe +public class RemoteQueryInfo + extends RemoteState +{ + private static final Logger log = Logger.get(RemoteQueryInfo.class); + private static final ObjectMapper mapper = new ObjectMapper(); + + private final AtomicReference>> queryList = new AtomicReference<>(Optional.empty()); + + public RemoteQueryInfo(HttpClient httpClient, URI remoteUri) + { + super(httpClient, remoteUri); + } + + public Optional> getQueryList() + { + return queryList.get(); + } + + public void handleResponse(JsonNode response) + { + ObjectReader reader = mapper.readerFor(new TypeReference>() {}); + try { + queryList.set(Optional.ofNullable(reader.readValue(response))); + } + catch (IOException e) { + log.warn("Error parsing response: %s", response.toString()); + } + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java new file mode 100644 index 0000000000000..989fb96cfbaf8 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java @@ -0,0 +1,110 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.fasterxml.jackson.databind.JsonNode; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import io.airlift.http.client.FullJsonResponseHandler; +import io.airlift.http.client.HttpClient; +import io.airlift.http.client.Request; +import io.airlift.json.JsonCodec; +import io.airlift.log.Logger; +import io.airlift.units.Duration; + +import javax.annotation.Nullable; +import javax.annotation.concurrent.ThreadSafe; + +import java.net.URI; +import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; + +import static com.google.common.util.concurrent.MoreExecutors.directExecutor; +import static io.airlift.http.client.FullJsonResponseHandler.createFullJsonResponseHandler; +import static io.airlift.http.client.HttpStatus.OK; +import static io.airlift.http.client.Request.Builder.prepareGet; +import static io.airlift.json.JsonCodec.jsonCodec; +import static io.airlift.units.Duration.nanosSince; +import static java.util.Objects.requireNonNull; +import static java.util.concurrent.TimeUnit.SECONDS; + +@ThreadSafe +public class RemoteState +{ + private static final Logger log = Logger.get(RemoteQueryInfo.class); + private static final JsonCodec JSON_CODEC = jsonCodec(JsonNode.class); + + private final HttpClient httpClient; + private final URI remoteUri; + private final AtomicReference> future = new AtomicReference<>(); + private final AtomicLong lastUpdateNanos = new AtomicLong(); + private final AtomicLong lastWarningLogged = new AtomicLong(); + + public RemoteState(HttpClient httpClient, URI remoteUri) + { + this.httpClient = requireNonNull(httpClient, "httpClient is null"); + this.remoteUri = requireNonNull(remoteUri, "remoteUri is null"); + } + + public void handleResponse(JsonNode response) {} + + public synchronized void asyncRefresh() + { + Duration sinceUpdate = nanosSince(lastUpdateNanos.get()); + + if (nanosSince(lastWarningLogged.get()).toMillis() > 1_000 && + sinceUpdate.toMillis() > 10_000 && + future.get() != null) { + log.warn("Coordinator update request to %s has not returned in %s", remoteUri, sinceUpdate.toString(SECONDS)); + lastWarningLogged.set(System.nanoTime()); + } + + if (sinceUpdate.toMillis() > 1_000 && future.get() == null) { + Request request = prepareGet() + .setUri(remoteUri) + .build(); + + HttpClient.HttpResponseFuture> responseFuture = httpClient.executeAsync(request, createFullJsonResponseHandler(JSON_CODEC)); + future.compareAndSet(null, responseFuture); + + Futures.addCallback(responseFuture, new FutureCallback>() + { + @Override + public void onSuccess(@Nullable FullJsonResponseHandler.JsonResponse result) + { + lastUpdateNanos.set(System.nanoTime()); + future.compareAndSet(responseFuture, null); + if (result != null) { + if (result.hasValue()) { + handleResponse(result.getValue()); + } + if (result.getStatusCode() != OK.code()) { + log.warn("Error fetching node state from %s returned status %d: %s", remoteUri, result.getStatusCode(), result.getStatusMessage()); + return; + } + } + } + + @Override + public void onFailure(Throwable t) + { + log.warn("Error fetching query infos from %s: %s", remoteUri, t.getMessage()); + lastUpdateNanos.set(System.nanoTime()); + future.compareAndSet(responseFuture, null); + } + }, directExecutor()); + } + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java new file mode 100644 index 0000000000000..95972c9bf8b14 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java @@ -0,0 +1,59 @@ +/* + * 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 com.twitter.presto.gateway.cluster; + +import com.google.common.collect.ImmutableMap; +import com.google.inject.Inject; +import com.twitter.presto.gateway.GatewayConfig; +import com.twitter.presto.gateway.query.QueryCategory; + +import java.net.URI; +import java.util.List; +import java.util.Map; + +import static com.google.common.collect.ImmutableList.toImmutableList; +import static com.twitter.presto.gateway.query.QueryCategory.BATCH; +import static com.twitter.presto.gateway.query.QueryCategory.INTERACTIVE; +import static com.twitter.presto.gateway.query.QueryCategory.REALTIME; + +public class StaticClusterManager + implements ClusterManager +{ + private final Map> clusters; + + @Inject + public StaticClusterManager(GatewayConfig config) + { + clusters = ImmutableMap.>builder() + .put(REALTIME, config.getClusters()) + .put(INTERACTIVE, config.getClusters()) + .put(BATCH, config.getClusters()) + .build(); + } + + @Override + public List getAllClusters() + { + return clusters.values().stream() + .flatMap(List::stream) + .distinct() + .collect(toImmutableList()); + } + + @Override + public List getClusters(QueryCategory category) + { + return clusters.get(category); + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java new file mode 100644 index 0000000000000..2fa4e0b64f216 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java @@ -0,0 +1,21 @@ +/* + * 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 com.twitter.presto.gateway.query; + +public enum QueryCategory +{ + REALTIME, + INTERACTIVE, + BATCH +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java new file mode 100644 index 0000000000000..c91ffece2f535 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java @@ -0,0 +1,63 @@ +/* + * 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 com.twitter.presto.gateway.query; + +import com.facebook.presto.spi.resourceGroups.QueryType; +import com.facebook.presto.sql.parser.ParsingOptions; +import com.facebook.presto.sql.parser.SqlParser; +import com.facebook.presto.sql.tree.Statement; +import com.twitter.presto.gateway.RequestInfo; + +import java.util.Optional; + +import static com.twitter.presto.gateway.query.QueryCategory.BATCH; +import static com.twitter.presto.gateway.query.QueryCategory.INTERACTIVE; +import static com.twitter.presto.gateway.query.QueryCategory.REALTIME; + +public class QueryClassifier +{ + private static final SqlParser SQL_PARSER = new SqlParser(); + + private QueryClassifier() {} + + public static QueryCategory classify(RequestInfo requestInfo) + { + String queryString = requestInfo.getQuery(); + Statement statement = SQL_PARSER.createStatement(queryString, new ParsingOptions()); + Optional type = StatementUtils.getQueryType(statement.getClass()); + + if (type.isPresent()) { + switch (type.get()) { + case DATA_DEFINITION: + case DESCRIBE: + case EXPLAIN: + return REALTIME; + case SELECT: + case INSERT: + case DELETE: + case ANALYZE: + if (requestInfo.getSource().contains("schedule")) { + return BATCH; + } + return INTERACTIVE; + default: + // by default query is distributed to BATCH + return BATCH; + } + } + + // by default query is distributed to BATCH + return BATCH; + } +} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java new file mode 100644 index 0000000000000..7fdf8d75a79a6 --- /dev/null +++ b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java @@ -0,0 +1,146 @@ +/* + * 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 com.twitter.presto.gateway.query; + +import com.facebook.presto.spi.resourceGroups.QueryType; +import com.facebook.presto.sql.tree.AddColumn; +import com.facebook.presto.sql.tree.Analyze; +import com.facebook.presto.sql.tree.Call; +import com.facebook.presto.sql.tree.Commit; +import com.facebook.presto.sql.tree.CreateRole; +import com.facebook.presto.sql.tree.CreateSchema; +import com.facebook.presto.sql.tree.CreateTable; +import com.facebook.presto.sql.tree.CreateTableAsSelect; +import com.facebook.presto.sql.tree.CreateView; +import com.facebook.presto.sql.tree.Deallocate; +import com.facebook.presto.sql.tree.Delete; +import com.facebook.presto.sql.tree.DescribeInput; +import com.facebook.presto.sql.tree.DescribeOutput; +import com.facebook.presto.sql.tree.DropColumn; +import com.facebook.presto.sql.tree.DropRole; +import com.facebook.presto.sql.tree.DropSchema; +import com.facebook.presto.sql.tree.DropTable; +import com.facebook.presto.sql.tree.DropView; +import com.facebook.presto.sql.tree.Explain; +import com.facebook.presto.sql.tree.Grant; +import com.facebook.presto.sql.tree.GrantRoles; +import com.facebook.presto.sql.tree.Insert; +import com.facebook.presto.sql.tree.Prepare; +import com.facebook.presto.sql.tree.Query; +import com.facebook.presto.sql.tree.RenameColumn; +import com.facebook.presto.sql.tree.RenameSchema; +import com.facebook.presto.sql.tree.RenameTable; +import com.facebook.presto.sql.tree.ResetSession; +import com.facebook.presto.sql.tree.Revoke; +import com.facebook.presto.sql.tree.RevokeRoles; +import com.facebook.presto.sql.tree.Rollback; +import com.facebook.presto.sql.tree.SetRole; +import com.facebook.presto.sql.tree.SetSession; +import com.facebook.presto.sql.tree.ShowCatalogs; +import com.facebook.presto.sql.tree.ShowColumns; +import com.facebook.presto.sql.tree.ShowCreate; +import com.facebook.presto.sql.tree.ShowFunctions; +import com.facebook.presto.sql.tree.ShowGrants; +import com.facebook.presto.sql.tree.ShowRoleGrants; +import com.facebook.presto.sql.tree.ShowRoles; +import com.facebook.presto.sql.tree.ShowSchemas; +import com.facebook.presto.sql.tree.ShowSession; +import com.facebook.presto.sql.tree.ShowStats; +import com.facebook.presto.sql.tree.ShowTables; +import com.facebook.presto.sql.tree.StartTransaction; +import com.facebook.presto.sql.tree.Statement; +import com.facebook.presto.sql.tree.Use; +import com.google.common.collect.ImmutableMap; + +import java.util.Map; +import java.util.Optional; + +// Copied from com.facebook.presto.util to avoid dependency on presto-main +public final class StatementUtils +{ + private StatementUtils() {} + + private static final Map, QueryType> STATEMENT_QUERY_TYPES; + + static { + ImmutableMap.Builder, QueryType> builder = ImmutableMap.builder(); + builder.put(Query.class, QueryType.SELECT); + + builder.put(Explain.class, QueryType.EXPLAIN); + builder.put(Analyze.class, QueryType.ANALYZE); + + builder.put(CreateTableAsSelect.class, QueryType.INSERT); + builder.put(Insert.class, QueryType.INSERT); + + builder.put(Delete.class, QueryType.DELETE); + + builder.put(ShowCatalogs.class, QueryType.DESCRIBE); + builder.put(ShowCreate.class, QueryType.DESCRIBE); + builder.put(ShowFunctions.class, QueryType.DESCRIBE); + builder.put(ShowGrants.class, QueryType.DESCRIBE); + builder.put(ShowRoles.class, QueryType.DESCRIBE); + builder.put(ShowRoleGrants.class, QueryType.DESCRIBE); + builder.put(ShowSchemas.class, QueryType.DESCRIBE); + builder.put(ShowSession.class, QueryType.DESCRIBE); + builder.put(ShowStats.class, QueryType.DESCRIBE); + builder.put(ShowTables.class, QueryType.DESCRIBE); + builder.put(ShowColumns.class, QueryType.DESCRIBE); + builder.put(DescribeInput.class, QueryType.DESCRIBE); + builder.put(DescribeOutput.class, QueryType.DESCRIBE); + + builder.put(CreateSchema.class, QueryType.DATA_DEFINITION); + builder.put(DropSchema.class, QueryType.DATA_DEFINITION); + builder.put(RenameSchema.class, QueryType.DATA_DEFINITION); + builder.put(AddColumn.class, QueryType.DATA_DEFINITION); + builder.put(CreateTable.class, QueryType.DATA_DEFINITION); + builder.put(RenameTable.class, QueryType.DATA_DEFINITION); + builder.put(RenameColumn.class, QueryType.DATA_DEFINITION); + builder.put(DropColumn.class, QueryType.DATA_DEFINITION); + builder.put(DropTable.class, QueryType.DATA_DEFINITION); + builder.put(CreateView.class, QueryType.DATA_DEFINITION); + builder.put(DropView.class, QueryType.DATA_DEFINITION); + builder.put(Use.class, QueryType.DATA_DEFINITION); + builder.put(SetSession.class, QueryType.DATA_DEFINITION); + builder.put(ResetSession.class, QueryType.DATA_DEFINITION); + builder.put(StartTransaction.class, QueryType.DATA_DEFINITION); + builder.put(Commit.class, QueryType.DATA_DEFINITION); + builder.put(Rollback.class, QueryType.DATA_DEFINITION); + builder.put(Call.class, QueryType.DATA_DEFINITION); + builder.put(CreateRole.class, QueryType.DATA_DEFINITION); + builder.put(DropRole.class, QueryType.DATA_DEFINITION); + builder.put(GrantRoles.class, QueryType.DATA_DEFINITION); + builder.put(RevokeRoles.class, QueryType.DATA_DEFINITION); + builder.put(SetRole.class, QueryType.DATA_DEFINITION); + builder.put(Grant.class, QueryType.DATA_DEFINITION); + builder.put(Revoke.class, QueryType.DATA_DEFINITION); + builder.put(Prepare.class, QueryType.DATA_DEFINITION); + builder.put(Deallocate.class, QueryType.DATA_DEFINITION); + STATEMENT_QUERY_TYPES = builder.build(); + } + + public static Map, QueryType> getAllQueryTypes() + { + return STATEMENT_QUERY_TYPES; + } + + public static Optional getQueryType(Class statement) + { + return Optional.ofNullable(STATEMENT_QUERY_TYPES.get(statement)); + } + + public static boolean isTransactionControlStatement(Statement statement) + { + return statement instanceof StartTransaction || statement instanceof Commit || statement instanceof Rollback; + } +} diff --git a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java new file mode 100644 index 0000000000000..b893e107e5028 --- /dev/null +++ b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java @@ -0,0 +1,52 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.google.common.collect.ImmutableMap; +import org.testng.annotations.Test; + +import java.util.Map; + +import static io.airlift.configuration.testing.ConfigAssertions.assertFullMapping; +import static io.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; +import static io.airlift.configuration.testing.ConfigAssertions.recordDefaults; + +public class TestGatewayConfig +{ + @Test + public void testDefaults() + { + assertRecordedDefaults(recordDefaults(GatewayConfig.class) + .setVersion(null) + .setClusterManagerType(null) + .setClusters(null)); + } + + @Test + public void testExplicitPropertyMappings() + { + Map properties = new ImmutableMap.Builder() + .put("gateway.version", "testversion") + .put("gateway.cluster-manager.type", "STATIC") + .put("gateway.cluster-manager.static.cluster-list", "http://example.net/,http://twitter.com/") + .build(); + + GatewayConfig expected = new GatewayConfig() + .setVersion("testversion") + .setClusterManagerType("STATIC") + .setClusters("http://example.net/,http://twitter.com/"); + + assertFullMapping(properties, expected); + } +} diff --git a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java new file mode 100644 index 0000000000000..5d87ca9477417 --- /dev/null +++ b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java @@ -0,0 +1,175 @@ +/* + * 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 com.twitter.presto.gateway; + +import com.facebook.presto.execution.QueryState; +import com.facebook.presto.jdbc.PrestoResultSet; +import com.facebook.presto.server.testing.TestingPrestoServer; +import com.facebook.presto.tpch.TpchPlugin; +import com.google.common.collect.ImmutableList; +import com.google.inject.Injector; +import com.twitter.presto.gateway.cluster.ClusterStatusTracker; +import io.airlift.bootstrap.Bootstrap; +import io.airlift.bootstrap.LifeCycleManager; +import io.airlift.http.server.HttpServerInfo; +import io.airlift.http.server.testing.TestingHttpServerModule; +import io.airlift.jaxrs.JaxrsModule; +import io.airlift.json.JsonModule; +import io.airlift.log.Logging; +import io.airlift.node.testing.TestingNodeModule; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.net.URI; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.List; +import java.util.stream.Collectors; + +import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; +import static java.lang.String.format; +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +public class TestStaticClusterManager +{ + private static final int NUM_CLUSTERS = 2; + private static final int NUM_QUERIES = 7; + + private List prestoServers; + private LifeCycleManager lifeCycleManager; + private HttpServerInfo httpServerInfo; + private ClusterStatusTracker clusterStatusTracker; + + @BeforeClass + public void setupServer() + throws Exception + { + Logging.initialize(); + ImmutableList.Builder builder = ImmutableList.builder(); + for (int i = 0; i < NUM_CLUSTERS; ++i) { + builder.add(createPrestoServer()); + } + prestoServers = builder.build(); + + Bootstrap app = new Bootstrap( + new TestingNodeModule("test"), + new TestingHttpServerModule(), + new JsonModule(), + new JaxrsModule(true), + new GatewayModule()); + + Injector injector = app + .strictConfig() + .doNotInitializeLogging() + .setRequiredConfigurationProperty("gateway.version", "testversion") + .setRequiredConfigurationProperty("gateway.cluster-manager.type", "STATIC") + .setRequiredConfigurationProperty("gateway.cluster-manager.static.cluster-list", getClusterList(prestoServers)) + .quiet() + .initialize(); + + lifeCycleManager = injector.getInstance(LifeCycleManager.class); + httpServerInfo = injector.getInstance(HttpServerInfo.class); + clusterStatusTracker = injector.getInstance(ClusterStatusTracker.class); + } + + @AfterClass(alwaysRun = true) + public void tearDownServer() + throws Exception + { + for (TestingPrestoServer prestoServer : prestoServers) { + prestoServer.close(); + } + lifeCycleManager.stop(); + } + + @Test + public void testQuery() + throws Exception + { + for (int i = 0; i < NUM_QUERIES; ++i) { + try (Connection connection = createConnection(httpServerInfo.getHttpUri()); + Statement statement = connection.createStatement(); + ResultSet rs = statement.executeQuery("SELECT row_number() OVER () n FROM tpch.tiny.orders")) { + long count = 0; + long sum = 0; + while (rs.next()) { + count++; + sum += rs.getLong("n"); + } + assertEquals(count, 15000); + assertEquals(sum, (count / 2) * (1 + count)); + } + } + + sleepUninterruptibly(10, SECONDS); + assertEquals(clusterStatusTracker.getAllQueryInfos().size(), NUM_QUERIES); + assertQueryState(); + } + + private void assertQueryState() + throws SQLException + { + String sql = "SELECT query_id, state FROM system.runtime.queries"; + int total = 0; + for (TestingPrestoServer server : prestoServers) { + try (Connection connection = createConnection(server.getBaseUrl()); + Statement statement = connection.createStatement(); + ResultSet rs = statement.executeQuery(sql)) { + String id = rs.unwrap(PrestoResultSet.class).getQueryId(); + int count = 0; + while (rs.next()) { + if (!rs.getString("query_id").equals(id)) { + assertEquals(QueryState.valueOf(rs.getString("state")), QueryState.FINISHED); + count++; + } + } + assertTrue(count > 0); + total += count; + } + } + assertEquals(total, NUM_QUERIES); + } + + private static TestingPrestoServer createPrestoServer() + throws Exception + { + TestingPrestoServer server = new TestingPrestoServer(); + server.installPlugin(new TpchPlugin()); + server.createCatalog("tpch", "tpch"); + server.refreshNodes(); + + return server; + } + + private static String getClusterList(List servers) + { + return servers.stream() + .map(TestingPrestoServer::getBaseUrl) + .map(URI::toString) + .collect(Collectors.joining(",")); + } + + private static Connection createConnection(URI uri) + throws SQLException + { + String url = format("jdbc:presto://%s:%s", uri.getHost(), uri.getPort()); + return DriverManager.getConnection(url, "test", null); + } +} From 09504889cf19f068c3345b2850f646db61f6ba73 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Wed, 8 Jan 2020 23:13:54 -0800 Subject: [PATCH 094/129] Find Parquet column by name (#232) --- .../parquet/ParquetPageSourceFactory.java | 4 +- .../presto/parquet/ParquetTypeUtils.java | 43 +++++++++++++++++++ .../apache/parquet/io/ColumnIOConverter.java | 5 ++- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index 062636c72dc37..fee834f6d97ce 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -89,9 +89,9 @@ import static com.facebook.presto.hive.HiveSessionProperties.isUseParquetColumnNames; import static com.facebook.presto.hive.parquet.HdfsParquetDataSource.buildHdfsParquetDataSource; import static com.facebook.presto.memory.context.AggregatedMemoryContext.newSimpleAggregatedMemoryContext; +import static com.facebook.presto.parquet.ParquetTypeUtils.findParquetTypeByName; import static com.facebook.presto.parquet.ParquetTypeUtils.getColumnIO; import static com.facebook.presto.parquet.ParquetTypeUtils.getDescriptors; -import static com.facebook.presto.parquet.ParquetTypeUtils.getParquetTypeByName; import static com.facebook.presto.parquet.ParquetTypeUtils.getSubfieldType; import static com.facebook.presto.parquet.predicate.PredicateUtils.buildPredicate; import static com.facebook.presto.parquet.predicate.PredicateUtils.predicateMatches; @@ -281,7 +281,7 @@ public static Optional getParquetType(Type prest { org.apache.parquet.schema.Type type = null; if (useParquetColumnNames) { - type = getParquetTypeByName(column.getName(), messageType); + type = findParquetTypeByName(column.getName(), messageType); } else if (column.getHiveColumnIndex() < messageType.getFieldCount()) { type = messageType.getType(column.getHiveColumnIndex()); diff --git a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java index e1385a9a280fb..b414d3fdc5d92 100644 --- a/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java +++ b/presto-parquet/src/main/java/com/facebook/presto/parquet/ParquetTypeUtils.java @@ -300,4 +300,47 @@ public static MessageType getSubfieldType(GroupType baseType, Subfield subfield) } return new MessageType(subfield.getRootName(), ImmutableList.of(type)); } + + /** + * Find the column type by name using returning the first match with the following logic: + *
    + *
  • direct match
  • + *
  • case-insensitive match
  • + *
  • if the name ends with _, remove it and direct match
  • + *
  • if the name ends with _, remove it and case-insensitive match
  • + *
+ */ + public static org.apache.parquet.schema.Type findParquetTypeByName(String name, MessageType messageType) + { + org.apache.parquet.schema.Type type = getParquetTypeByName(name, messageType); + + if (type == null && name.endsWith("_")) { + type = getParquetTypeByName(name.substring(0, name.length() - 1), messageType); + } + return type; + } + + // Find the column index by name following the same logic as findParquetTypeByName + public static int findFieldIndexByName(MessageType fileSchema, String name) + { + int fieldIndex = getFieldIndex(fileSchema, name); + + if (fieldIndex == -1 && name.endsWith("_")) { + fieldIndex = getFieldIndex(fileSchema, name.substring(0, name.length() - 1)); + } + + return fieldIndex; + } + + // Find the ColumnIO by name following the same logic as findParquetTypeByName + public static ColumnIO findColumnIObyName(GroupColumnIO groupColumnIO, String name) + { + ColumnIO columnIO = lookupColumnByName(groupColumnIO, name); + + if (columnIO == null && name.endsWith("_")) { + columnIO = lookupColumnByName(groupColumnIO, name.substring(0, name.length() - 1)); + } + + return columnIO; + } } diff --git a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java index 9cf6541873e34..57eafc05bdcbe 100644 --- a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java +++ b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java @@ -32,7 +32,8 @@ import static com.facebook.presto.common.type.StandardTypes.ROW; import static com.facebook.presto.parquet.ParquetTypeUtils.getArrayElementColumn; import static com.facebook.presto.parquet.ParquetTypeUtils.getMapKeyValueColumn; -import static com.facebook.presto.parquet.ParquetTypeUtils.lookupColumnByName; +import static com.facebook.presto.parquet.ParquetTypeUtils.findColumnIObyName; + import static org.apache.parquet.schema.Type.Repetition.OPTIONAL; /** @@ -61,7 +62,7 @@ public static Optional constructField(Type type, ColumnIO columnIO) for (int i = 0; i < fields.size(); i++) { NamedTypeSignature namedTypeSignature = fields.get(i).getNamedTypeSignature(); String name = namedTypeSignature.getName().get().toLowerCase(Locale.ENGLISH); - Optional field = constructField(parameters.get(i), lookupColumnByName(groupColumnIO, name)); + Optional field = constructField(parameters.get(i), findColumnIObyName(groupColumnIO, name)); structHasParameters |= field.isPresent(); fieldsBuilder.add(field); } From 015f390669bdbb91661bfa92260bd48be22bd2e4 Mon Sep 17 00:00:00 2001 From: Da Cheng Date: Thu, 9 Jan 2020 16:59:54 -0800 Subject: [PATCH 095/129] Add presto-twitter-server-rpm (#233) --- pom.xml | 1 + presto-twitter-server-rpm/README.md | 46 ++++ presto-twitter-server-rpm/pom.xml | 203 ++++++++++++++++++ .../resources/dist/config/config.properties | 6 + .../src/main/resources/dist/config/jvm.config | 9 + .../main/resources/dist/config/log.properties | 2 + .../resources/dist/config/node.properties | 7 + .../src/main/resources/dist/etc/init.d/presto | 87 ++++++++ .../src/main/rpm/postinstall | 21 ++ .../src/main/rpm/postremove | 18 ++ .../src/main/rpm/preinstall | 74 +++++++ .../src/main/rpm/preremove | 5 + 12 files changed, 479 insertions(+) create mode 100644 presto-twitter-server-rpm/README.md create mode 100644 presto-twitter-server-rpm/pom.xml create mode 100644 presto-twitter-server-rpm/src/main/resources/dist/config/config.properties create mode 100644 presto-twitter-server-rpm/src/main/resources/dist/config/jvm.config create mode 100644 presto-twitter-server-rpm/src/main/resources/dist/config/log.properties create mode 100644 presto-twitter-server-rpm/src/main/resources/dist/config/node.properties create mode 100644 presto-twitter-server-rpm/src/main/resources/dist/etc/init.d/presto create mode 100644 presto-twitter-server-rpm/src/main/rpm/postinstall create mode 100644 presto-twitter-server-rpm/src/main/rpm/postremove create mode 100644 presto-twitter-server-rpm/src/main/rpm/preinstall create mode 100644 presto-twitter-server-rpm/src/main/rpm/preremove diff --git a/pom.xml b/pom.xml index 4a0b3573cdfba..b0c56f9c189dd 100644 --- a/pom.xml +++ b/pom.xml @@ -163,6 +163,7 @@ presto-twitter-server presto-twitter-functions presto-twitter-gateway + presto-twitter-server-rpm diff --git a/presto-twitter-server-rpm/README.md b/presto-twitter-server-rpm/README.md new file mode 100644 index 0000000000000..f1817c600a5bc --- /dev/null +++ b/presto-twitter-server-rpm/README.md @@ -0,0 +1,46 @@ +# Presto RPM + +## RPM Package Build And Usage + +You can build an RPM package for Presto server and install Presto using the RPM. Thus, the installation is easier to manage on RPM-based systems. + +The RPM builds by default in Maven, and can be found under the directory `presto-twitter-server-rpm/target/` + +The RPM has a pre-requisite of Python >= 2.4. It also needs Oracle Java 1.8 update 40 (8u40 64-bit) pre-installed. The RPM installation will fail if any of these requirements are not +satisfied. + +To install Presto using an RPM, run: + + rpm -i presto-twitter-server--1.0.x86_64.rpm + +This will install Presto in single node mode, where both coordinator and workers are co-located on localhost. This will deploy the necessary default configurations along with a service script to control the Presto server process. + +Uninstalling the RPM is like uninstalling any other RPM, just run: + + rpm -e presto + +Note: During uninstall, any Presto related files deployed will be deleted except for the Presto logs directory `/var/log/presto`. + +## Control Scripts + +The Presto RPM will also deploy service scripts to control the Presto server process. The script is configured with chkconfig, +so that the service can be started automatically on OS boot. After installing Presto from the RPM, you can run: + + service presto [start|stop|restart|status] + +## Installation directory structure + +We use the following directory structure to deploy various Presto artifacts. + +* /usr/lib/presto/lib/: Various libraries needed to run the product. Plugins go in a plugin subdirectory. +* /etc/presto: General Presto configuration files like node.properties, jvm.config, config.properties. Connector configs go in a catalog subdirectory +* /etc/presto/env.sh: Java installation path used by Presto +* /var/log/presto: Log files +* /var/lib/presto/data: Data directory +* /usr/shared/doc/presto: Docs +* /etc/rc.d/init.d/presto: Control script + +The node.properties file requires the following two additional properties since our directory structure is different from what standard Presto expects. + + catalog.config-dir=/etc/presto/catalog + plugin.dir=/usr/lib/presto/lib/plugin diff --git a/presto-twitter-server-rpm/pom.xml b/presto-twitter-server-rpm/pom.xml new file mode 100644 index 0000000000000..4ecb1f31774d9 --- /dev/null +++ b/presto-twitter-server-rpm/pom.xml @@ -0,0 +1,203 @@ + + + 4.0.0 + + + com.facebook.presto + presto-root + 0.228 + + + presto-twitter-server-rpm + presto-twitter-server-rpm + rpm + + + ${project.parent.basedir} + + true + true + true + true + + presto-twitter-server-${project.version} + + + + + com.facebook.presto + presto-twitter-server + 0.228 + tar.gz + runtime + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + + unpack + + + false + + + com.facebook.presto + presto-twitter-server + ${project.version} + tar.gz + ${project.build.outputDirectory} + + + + + + + + + + com.teradata + redlinerpm-maven-plugin-td + 2.1.5 + true + + + false + + + + presto-twitter-server-rpm + presto-twitter-server-rpm-${project.version}.x86_64.rpm + ${project.version} + 1 + + Applications/Databases + Presto Server RPM Package. + x86_64 + src/main/rpm/preinstall + src/main/rpm/postinstall + src/main/rpm/preremove + src/main/rpm/postremove + + + + python + [2.4,) + + + /usr/sbin/useradd + + + /usr/sbin/groupadd + + + + /usr/bin/uuidgen + + + + /usr/bin/sudo + + + + + + /usr/lib/presto/etc + /etc/presto + + + + + + /usr/lib/presto/bin + ${server.tar.package}/bin + + 0755 + + * + + + + + /usr/lib/presto/bin + ${server.tar.package}/bin + + + */** + + + + + /etc/init.d + dist/etc/init.d + + 0755 + + * + + + + + + /usr/lib/presto/lib + ${server.tar.package}/lib + + * + + + + + /usr/lib/presto/lib/plugin + ${server.tar.package}/plugin + + */* + + + + + /etc/presto + dist/config + + * + + + config + noreplace + + + + + /usr/shared/doc/presto + ${server.tar.package} + + README.txt + + + + + + /usr/lib/presto + + + /usr/lib/presto/lib + + + + + + + + + + + + + diff --git a/presto-twitter-server-rpm/src/main/resources/dist/config/config.properties b/presto-twitter-server-rpm/src/main/resources/dist/config/config.properties new file mode 100644 index 0000000000000..2b4522a3131c3 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/resources/dist/config/config.properties @@ -0,0 +1,6 @@ +#single node install config +coordinator=true +node-scheduler.include-coordinator=true +http-server.http.port=8080 +discovery-server.enabled=true +discovery.uri=http://localhost:8080 diff --git a/presto-twitter-server-rpm/src/main/resources/dist/config/jvm.config b/presto-twitter-server-rpm/src/main/resources/dist/config/jvm.config new file mode 100644 index 0000000000000..7e832707d5061 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/resources/dist/config/jvm.config @@ -0,0 +1,9 @@ +-server +-Xmx16G +-XX:-UseBiasedLocking +-XX:+UseG1GC +-XX:+ExplicitGCInvokesConcurrent +-XX:+HeapDumpOnOutOfMemoryError +-XX:+UseGCOverheadLimit +-XX:+ExitOnOutOfMemoryError +-XX:ReservedCodeCacheSize=512M diff --git a/presto-twitter-server-rpm/src/main/resources/dist/config/log.properties b/presto-twitter-server-rpm/src/main/resources/dist/config/log.properties new file mode 100644 index 0000000000000..41e1172211891 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/resources/dist/config/log.properties @@ -0,0 +1,2 @@ +# Enable verbose logging from Presto +#com.facebook.presto=DEBUG diff --git a/presto-twitter-server-rpm/src/main/resources/dist/config/node.properties b/presto-twitter-server-rpm/src/main/resources/dist/config/node.properties new file mode 100644 index 0000000000000..35b9093d7d011 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/resources/dist/config/node.properties @@ -0,0 +1,7 @@ +node.environment=test +node.id=$(uuid-generated-nodeid) +node.data-dir=/var/lib/presto/data +catalog.config-dir=/etc/presto/catalog +plugin.dir=/usr/lib/presto/lib/plugin +node.server-log-file=/var/log/presto/server.log +node.launcher-log-file=/var/log/presto/launcher.log diff --git a/presto-twitter-server-rpm/src/main/resources/dist/etc/init.d/presto b/presto-twitter-server-rpm/src/main/resources/dist/etc/init.d/presto new file mode 100644 index 0000000000000..4575a5b5daed1 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/resources/dist/etc/init.d/presto @@ -0,0 +1,87 @@ +#!/bin/bash +# +# Manages a Presto node service +# +# chkconfig: 345 85 15 +# description: Presto node +# +### BEGIN INIT INFO +# Provides: presto +# Short-Description: presto node +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Required-Start: $syslog $remote_fs +# Required-Stop: $syslog $remote_fs +# Should-Start: +# Should-Stop: +### END INIT INFO + +SCRIPT_NAME=$0 +ACTION_NAME=$1 +SERVICE_NAME='presto' +SERVICE_USER='presto' + +# Launcher Config. +# Use data-dir from node.properties file (assumes it to be at /etc/presto). For other args use defaults from rpm install +NODE_PROPERTIES=/etc/presto/node.properties +DATA_DIR=$(grep -Po "(?<=^node.data-dir=).*" $NODE_PROPERTIES | tail -n 1) +SERVER_LOG_FILE=$(grep -Po "(?<=^node.server-log-file=).*" $NODE_PROPERTIES | tail -n 1) +LAUNCHER_LOG_FILE=$(grep -Po "(?<=^node.launcher-log-file=).*" $NODE_PROPERTIES | tail -n 1) +CONFIGURATION=(--launcher-config /usr/lib/presto/bin/launcher.properties --data-dir "$DATA_DIR" --node-config "$NODE_PROPERTIES" --jvm-config /etc/presto/jvm.config --config /etc/presto/config.properties --launcher-log-file "${LAUNCHER_LOG_FILE:-/var/log/presto/launcher.log}" --server-log-file "${SERVER_LOG_FILE:-/var/log/presto/server.log}") + +source /etc/presto/env.sh + +start () { + echo "Starting ${SERVICE_NAME} " + if [ -z "$JAVA8_HOME" ] + then + echo "Warning: No value found for JAVA8_HOME. Default Java will be used." + sudo -u $SERVICE_USER /usr/lib/presto/bin/launcher start "${CONFIGURATION[@]}" + else + sudo -u $SERVICE_USER PATH=${JAVA8_HOME}/bin:$PATH /usr/lib/presto/bin/launcher start "${CONFIGURATION[@]}" + fi + return $? +} + +stop () { + echo "Stopping ${SERVICE_NAME} " + sudo -u $SERVICE_USER /usr/lib/presto/bin/launcher stop "${CONFIGURATION[@]}" + return $? +} + +status () { + echo "Getting status for ${SERVICE_NAME} " + sudo -u $SERVICE_USER /usr/lib/presto/bin/launcher status "${CONFIGURATION[@]}" + return $? +} + + +restart () { + sudo -u $SERVICE_USER /usr/lib/presto/bin/launcher restart "${CONFIGURATION[@]}" + return $? +} + +# TODO: Add kill + +usage () { + echo $"Usage: ${SCRIPT_NAME} {start|stop|restart|status}" + return 3 +} + +case "${ACTION_NAME}" in + start) + start + ;; + stop) + stop + ;; + restart) + restart + ;; + status) + status + ;; + *) + echo $"Usage: $0 {start|stop|restart|status}" + exit 3 +esac diff --git a/presto-twitter-server-rpm/src/main/rpm/postinstall b/presto-twitter-server-rpm/src/main/rpm/postinstall new file mode 100644 index 0000000000000..8afe231f5131e --- /dev/null +++ b/presto-twitter-server-rpm/src/main/rpm/postinstall @@ -0,0 +1,21 @@ +# Post installation script + +# Dynamically populated directories that we expect to exist but do +# not want to remove when removing the RPM. Ideally, we would do this +# via the RPM building plugin, but adding empty directories is not +# supported. +install --directory --mode=755 /var/lib/presto +install --directory --mode=755 /var/log/presto + +# Populate node.id from uuidgen by replacing template with the node uuid +sed -i "s/\$(uuid-generated-nodeid)/$(uuidgen)/g" /etc/presto/node.properties + +# move the presto_env.sh created during pre-install to presto config location +if [ -e /tmp/presto_env.sh ] +then + mv /tmp/presto_env.sh /etc/presto/env.sh +fi + +chown -R presto:presto /var/lib/presto +chown -R presto:presto /var/log/presto +chown -R presto:presto /etc/presto diff --git a/presto-twitter-server-rpm/src/main/rpm/postremove b/presto-twitter-server-rpm/src/main/rpm/postremove new file mode 100644 index 0000000000000..ac34fc4e5022d --- /dev/null +++ b/presto-twitter-server-rpm/src/main/rpm/postremove @@ -0,0 +1,18 @@ +# Post erase script + +# if this is the last version of presto-twitter-server-rpm being removed (i.e. not on upgrade) +if [ "$1" -eq 0 ] +then + # Delete /etc/presto/env.sh manually during uninstall. + # rpm -e wont remove it, because this file is created during preinstall + rm -f /etc/presto/env.sh + # Delete the data directory manually during uninstall. + # rpm -e wont remove it, because this directory may later contain files not + # deployed by the rpm + rm -rf /var/lib/presto + # Remove /etc/presto directory if no other files present + if [ -z "$(ls -A /etc/presto)" ] + then + rm -rf /etc/presto + fi +fi diff --git a/presto-twitter-server-rpm/src/main/rpm/preinstall b/presto-twitter-server-rpm/src/main/rpm/preinstall new file mode 100644 index 0000000000000..98584416b537d --- /dev/null +++ b/presto-twitter-server-rpm/src/main/rpm/preinstall @@ -0,0 +1,74 @@ +# Pre installation script + +# Ensure that the proper version of Java exists on the system + +java_version() { +# The one argument is the location of java (either $JAVA_HOME or a potential +# candidate for JAVA_HOME. + JAVA="$1"/bin/java + "$JAVA" -version 2>&1 | grep "\(java\|openjdk\) version" | awk '{ print substr($3, 2, length($3)-2); }' +} + +check_if_correct_java_version() { + +# If the string is empty return non-zero code. We don't want false positives if /bin/java is +# a valid java version because that will leave java8_home unset and the init.d scripts will +# use the default java version, which may not be java 8. + if [ -z $1 ] ; then + return 1 + fi + +# The one argument is the location of java (either $JAVA_HOME or a potential +# candidate for JAVA_HOME). + JAVA_VERSION=$(java_version "$1") + JAVA_UPDATE=$(echo $JAVA_VERSION | cut -d'_' -f2) + if [[ ("$JAVA_VERSION" > "1.8") && ($JAVA_UPDATE -ge 151) ]]; then + echo "JAVA8_HOME=$1" > /tmp/presto_env.sh + return 0 + else + return 1 + fi +} + +# if Java version of $JAVA_HOME is not 1.8 update 151 (8u151) and is not Oracle Java, then try to find it again below +if ! check_if_correct_java_version "$JAVA8_HOME" && ! check_if_correct_java_version "$JAVA_HOME"; then + java_found=false + for candidate in \ + /usr/lib/jvm/jdk1.8* \ + /usr/lib/jvm/jre1.8* \ + /usr/lib/jvm/java-8-oracle* \ + /usr/java/jdk1.8* \ + /usr/java/jre1.8* \ + /usr/jdk64/jdk1.8* \ + /usr/lib/jvm/default-java \ + /usr/java/default \ + / \ + /usr ; do + if [ -e "$candidate"/bin/java ]; then + if check_if_correct_java_version "$candidate" ; then + java_found=true + break + fi + fi + done +fi + +# if no appropriate java found +if [ "$java_found" = false ]; then + cat 1>&2 < http://www.oracle.com/technetwork/java/javase/downloads < | +| | +| Presto requires Java 1.8 update 151 (8u151) | +| NOTE: This script will attempt to find Java whether you install | +| using the binary or the RPM based installer. | ++======================================================================+ +EOF + exit 1 +fi + +getent group presto >/dev/null || /usr/sbin/groupadd -r presto +getent passwd presto >/dev/null || /usr/sbin/useradd --comment "Presto" -s /sbin/nologin -g presto -r -d /var/lib/presto presto diff --git a/presto-twitter-server-rpm/src/main/rpm/preremove b/presto-twitter-server-rpm/src/main/rpm/preremove new file mode 100644 index 0000000000000..319d2af06a257 --- /dev/null +++ b/presto-twitter-server-rpm/src/main/rpm/preremove @@ -0,0 +1,5 @@ +/etc/init.d/presto status > /dev/null 2>&1 +if [[ $? != 3 ]]; then + echo "Please stop the Presto service before erasing RPM" + exit 1 +fi From 81ea8a664e28727eb0a25bff069c2270ee17ddd7 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 23 Jan 2020 21:52:36 -0800 Subject: [PATCH 096/129] Rebase to 230 and refactoring twitter's lzo-thrift --- pom.xml | 1 - presto-hive-metastore/pom.xml | 115 ++++++++++ .../presto/hive/HiveStorageFormat.java | 6 - .../thrift/ThriftMetastoreModule.java | 1 - .../hive/MetastoreStaticClusterModule.java | 2 +- .../hive/MetastoreZkDiscoveryBasedModule.java | 2 +- .../PooledHiveMetastoreClientFactory.java | 4 +- .../hive/ZookeeperMetastoreMonitor.java | 2 +- .../hive/ZookeeperServersetHiveCluster.java | 2 +- .../ZookeeperServersetMetastoreConfig.java | 4 +- .../twitter/hive/thrift/LzoThriftUtil.java | 53 +++++ .../hive/thrift/ThriftGeneralInputFormat.java | 8 +- .../hive/util/PooledTTransportFactory.java | 0 .../twitter/hive/util/TTransportPool.java | 0 .../hive/TestZookeeperMetastoreMonitor.java | 2 +- ...TestZookeeperServersetMetastoreConfig.java | 6 +- .../presto/twitter/hive/util/TestUtils.java | 0 presto-hive/pom.xml | 61 ------ .../com/facebook/presto/hive/HiveUtil.java | 33 --- .../thrift/HiveThriftFieldIdResolver.java | 4 +- .../HiveThriftFieldIdResolverFactory.java | 2 +- .../thrift/ThriftGeneralDeserializer.java | 8 +- .../twitter/hive/thrift/ThriftGenericRow.java | 2 +- .../hive/thrift/ThriftHiveRecordCursor.java | 8 +- .../ThriftHiveRecordCursorProvider.java | 8 +- .../presto/hive/AbstractTestHiveClient.java | 3 +- presto-twitter-functions/pom.xml | 2 +- presto-twitter-gateway/etc/config.properties | 2 - presto-twitter-gateway/pom.xml | 207 ------------------ .../twitter/presto/gateway/GatewayConfig.java | 92 -------- .../twitter/presto/gateway/GatewayModule.java | 70 ------ .../presto/gateway/GatewayResource.java | 77 ------- .../twitter/presto/gateway/PrestoGateway.java | 67 ------ .../twitter/presto/gateway/RequestInfo.java | 86 -------- .../gateway/cluster/ClusterManager.java | 26 --- .../cluster/ClusterManagerResource.java | 45 ---- .../gateway/cluster/ClusterSelector.java | 24 -- .../cluster/ClusterStatusResource.java | 147 ------------- .../gateway/cluster/ClusterStatusTracker.java | 160 -------------- .../gateway/cluster/ForQueryTracker.java | 31 --- .../gateway/cluster/RandomSelector.java | 53 ----- .../gateway/cluster/RemoteClusterInfo.java | 81 ------- .../gateway/cluster/RemoteQueryInfo.java | 60 ----- .../presto/gateway/cluster/RemoteState.java | 110 ---------- .../gateway/cluster/StaticClusterManager.java | 59 ----- .../presto/gateway/query/QueryCategory.java | 21 -- .../presto/gateway/query/QueryClassifier.java | 63 ------ .../presto/gateway/query/StatementUtils.java | 146 ------------ .../presto/gateway/TestGatewayConfig.java | 52 ----- .../gateway/TestStaticClusterManager.java | 175 --------------- presto-twitter-server-rpm/pom.xml | 4 +- presto-twitter-server/pom.xml | 2 +- twitter-eventlistener-plugin/pom.xml | 16 +- .../TwitterEventListenerConfig.java | 2 +- .../TwitterEventListenerFactory.java | 6 +- .../TwitterEventListenerModule.java | 4 +- .../scriber/QueryCompletedEventScriber.java | 2 +- .../scriber/QueryStatsHelper.java | 2 +- .../TestTwitterEventListenerConfig.java | 2 +- .../TestTwitterEventListenerPlugin.java | 2 +- 60 files changed, 221 insertions(+), 2014 deletions(-) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java (94%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java (93%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java (96%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java (99%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java (98%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java (97%) create mode 100644 presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java (91%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java (100%) rename {presto-hive => presto-hive-metastore}/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java (100%) rename {presto-hive => presto-hive-metastore}/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java (99%) rename {presto-hive => presto-hive-metastore}/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java (90%) rename {presto-hive => presto-hive-metastore}/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java (100%) delete mode 100644 presto-twitter-gateway/etc/config.properties delete mode 100644 presto-twitter-gateway/pom.xml delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java delete mode 100644 presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java delete mode 100644 presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java delete mode 100644 presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java diff --git a/pom.xml b/pom.xml index b0c56f9c189dd..7aa42ec6d8bef 100644 --- a/pom.xml +++ b/pom.xml @@ -162,7 +162,6 @@ twitter-eventlistener-plugin presto-twitter-server presto-twitter-functions - presto-twitter-gateway presto-twitter-server-rpm diff --git a/presto-hive-metastore/pom.xml b/presto-hive-metastore/pom.xml index 7694d6949a28e..401d27b3ce73f 100644 --- a/presto-hive-metastore/pom.xml +++ b/presto-hive-metastore/pom.xml @@ -13,6 +13,7 @@ ${project.parent.basedir} + 4.0.0 @@ -220,6 +221,120 @@ assertj-core test
+ + + + org.apache.commons + commons-pool2 + + + + org.anarres.lzo + lzo-hadoop + + + + com.googlecode.json-simple + json-simple + 1.1 + + + + com.twitter.elephantbird + elephant-bird-core + 4.14 + thrift9 + + + commons-logging + commons-logging + + + com.hadoop.gplcompression + hadoop-lzo + + + + + + commons-io + commons-io + 2.5 + runtime + + + + org.apache.curator + curator-recipes + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-framework + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-client + ${dep.curator.version} + + + org.apache.zookeeper + zookeeper + + + + + + org.apache.curator + curator-test + 2.12.0 + test + + + org.apache.zookeeper + zookeeper + + + + + + + org.apache.zookeeper + zookeeper + runtime + + + + com.101tec + zkclient + 0.10 + test + + + log4j + log4j + + + org.slf4j + slf4j-log4j12 + + + diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java index 5be3827c84e2c..62eb1646035d2 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/HiveStorageFormat.java @@ -13,7 +13,6 @@ */ package com.facebook.presto.hive; -import com.facebook.presto.spi.PrestoException; import com.facebook.presto.twitter.hive.thrift.ThriftGeneralInputFormat; import io.airlift.units.DataSize; import io.airlift.units.DataSize.Unit; @@ -34,11 +33,6 @@ import org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe; import org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe; import org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe; -import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category; -import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory; -import org.apache.hadoop.hive.serde2.typeinfo.MapTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo; -import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.mapred.SequenceFileInputFormat; import org.apache.hadoop.mapred.TextInputFormat; import org.apache.hive.hcatalog.data.JsonSerDe; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java index 6d832f275a8e4..61eca23e6e43f 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java @@ -26,7 +26,6 @@ import com.google.inject.Binder; import com.google.inject.Scopes; -import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.facebook.airlift.configuration.ConditionalModule.installModuleIf; import static java.util.Objects.requireNonNull; import static org.weakref.jmx.ObjectNames.generatedNameOf; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java similarity index 94% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java index 8751b5bc474f6..07924c2c502af 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreStaticClusterModule.java @@ -20,7 +20,7 @@ import com.google.inject.Module; import com.google.inject.Scopes; -import static io.airlift.configuration.ConfigBinder.configBinder; +import static com.facebook.airlift.configuration.ConfigBinder.configBinder; public class MetastoreStaticClusterModule implements Module diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java similarity index 93% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java index 5459eca553054..4e75f973e4cfc 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/MetastoreZkDiscoveryBasedModule.java @@ -18,7 +18,7 @@ import com.google.inject.Module; import com.google.inject.Scopes; -import static io.airlift.configuration.ConfigBinder.configBinder; +import static com.facebook.airlift.configuration.ConfigBinder.configBinder; public class MetastoreZkDiscoveryBasedModule implements Module diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java similarity index 96% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java index 270e313e75114..ca929485a5309 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/PooledHiveMetastoreClientFactory.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.twitter.hive; -import com.facebook.presto.hive.HiveClientConfig; +import com.facebook.presto.hive.MetastoreClientConfig; import com.facebook.presto.hive.authentication.HiveMetastoreAuthentication; import com.facebook.presto.hive.metastore.thrift.HiveMetastoreClient; import com.facebook.presto.hive.metastore.thrift.ThriftHiveMetastoreClient; @@ -59,7 +59,7 @@ public PooledHiveMetastoreClientFactory(@Nullable HostAndPort socksProxy, } @Inject - public PooledHiveMetastoreClientFactory(HiveClientConfig config, + public PooledHiveMetastoreClientFactory(MetastoreClientConfig config, ZookeeperServersetMetastoreConfig zkConfig, HiveMetastoreAuthentication metastoreAuthentication) { diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java similarity index 99% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java index cf8df021c1a1b..7238543713744 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperMetastoreMonitor.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.twitter.hive; +import com.facebook.airlift.log.Logger; import com.google.common.net.HostAndPort; -import io.airlift.log.Logger; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.cache.PathChildrenCache; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java similarity index 98% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java index c91912f0ff916..fd3d1903c3dce 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetHiveCluster.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.twitter.hive; +import com.facebook.airlift.log.Logger; import com.facebook.presto.hive.metastore.thrift.HiveCluster; import com.facebook.presto.hive.metastore.thrift.HiveMetastoreClient; import com.google.common.net.HostAndPort; -import io.airlift.log.Logger; import org.apache.thrift.transport.TTransportException; import javax.inject.Inject; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java similarity index 97% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java index 65b424b6c437e..301e5533d21a8 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/ZookeeperServersetMetastoreConfig.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.twitter.hive; -import io.airlift.configuration.Config; -import io.airlift.configuration.ConfigDescription; +import com.facebook.airlift.configuration.Config; +import com.facebook.airlift.configuration.ConfigDescription; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java new file mode 100644 index 0000000000000..7de550eeaa86e --- /dev/null +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java @@ -0,0 +1,53 @@ +/* + * 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 com.facebook.presto.twitter.hive.thrift; + +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.fs.PathFilter; + +import static com.hadoop.compression.lzo.LzoIndex.LZO_INDEX_SUFFIX; + +public class LzoThriftUtil +{ + private static final PathFilter LZOP_DEFAULT_SUFFIX_FILTER = new PathFilter() + { + @Override + public boolean accept(Path path) + { + return path.toString().endsWith(".lzo"); + } + }; + private static final PathFilter LZOP_INDEX_DEFAULT_SUFFIX_FILTER = new PathFilter() + { + @Override + public boolean accept(Path path) + { + return path.toString().endsWith(".lzo.index"); + } + }; + + private LzoThriftUtil() + { + } + + public static Path getLzopIndexPath(Path lzoPath) + { + return lzoPath.suffix(LZO_INDEX_SUFFIX); + } + + public static boolean isLzopCompressedFile(Path filePath) + { + return LZOP_DEFAULT_SUFFIX_FILTER.accept(filePath); + } +} diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java similarity index 91% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java index 1f9690036dbf9..ba8373544b906 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java @@ -29,10 +29,10 @@ import java.io.IOException; -import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; -import static com.facebook.presto.hive.HiveUtil.checkCondition; -import static com.facebook.presto.hive.HiveUtil.getLzopIndexPath; -import static com.facebook.presto.hive.HiveUtil.isLzopCompressedFile; +import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; +import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.getLzopIndexPath; +import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.isLzopCompressedFile; import static java.lang.String.format; import static org.apache.hadoop.hive.serde.Constants.SERIALIZATION_CLASS; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java similarity index 100% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/util/PooledTTransportFactory.java diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java similarity index 100% rename from presto-hive/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java rename to presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/util/TTransportPool.java diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java b/presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java similarity index 99% rename from presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java rename to presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java index 1f89464aedce3..d151cda488637 100644 --- a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperMetastoreMonitor.java @@ -13,10 +13,10 @@ */ package com.facebook.presto.twitter.hive; +import com.facebook.airlift.log.Logger; import com.facebook.presto.twitter.hive.util.TestUtils; import com.google.common.collect.ImmutableList; import com.google.common.net.HostAndPort; -import io.airlift.log.Logger; import org.I0Itec.zkclient.ZkClient; import org.I0Itec.zkclient.exception.ZkMarshallingError; import org.I0Itec.zkclient.serialize.ZkSerializer; diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java b/presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java similarity index 90% rename from presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java rename to presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java index b839a8d154042..9b32de59f8e1d 100644 --- a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java +++ b/presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/TestZookeeperServersetMetastoreConfig.java @@ -18,9 +18,9 @@ import java.util.Map; -import static io.airlift.configuration.testing.ConfigAssertions.assertFullMapping; -import static io.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; -import static io.airlift.configuration.testing.ConfigAssertions.recordDefaults; +import static com.facebook.airlift.configuration.testing.ConfigAssertions.assertFullMapping; +import static com.facebook.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; +import static com.facebook.airlift.configuration.testing.ConfigAssertions.recordDefaults; public class TestZookeeperServersetMetastoreConfig { diff --git a/presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java b/presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java similarity index 100% rename from presto-hive/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java rename to presto-hive-metastore/src/test/java/com/facebook/presto/twitter/hive/util/TestUtils.java diff --git a/presto-hive/pom.xml b/presto-hive/pom.xml index 9020383fc2198..38e2efb52bb6e 100644 --- a/presto-hive/pom.xml +++ b/presto-hive/pom.xml @@ -117,11 +117,6 @@ libthrift - - org.apache.commons - commons-pool2 - - io.airlift aircompressor @@ -162,12 +157,6 @@ configuration - - com.googlecode.json-simple - json-simple - 1.1 - - com.google.guava guava @@ -441,56 +430,6 @@ test - - - org.apache.curator - curator-recipes - ${dep.curator.version} - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.curator - curator-framework - ${dep.curator.version} - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.curator - curator-client - ${dep.curator.version} - - - org.apache.zookeeper - zookeeper - - - - - - org.apache.curator - curator-test - 2.12.0 - test - - - org.apache.zookeeper - zookeeper - - - - org.apache.zookeeper diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java index 9f8a570f40f1e..1919455153bda 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveUtil.java @@ -51,7 +51,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.fs.PathFilter; import org.apache.hadoop.hive.common.JavaUtils; import org.apache.hadoop.hive.ql.exec.Utilities; import org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat; @@ -143,7 +142,6 @@ import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.transform; -import static com.hadoop.compression.lzo.LzoIndex.LZO_INDEX_SUFFIX; import static java.lang.Byte.parseByte; import static java.lang.Double.parseDouble; import static java.lang.Float.floatToRawIntBits; @@ -180,22 +178,6 @@ public final class HiveUtil private static final String BIG_DECIMAL_POSTFIX = "BD"; - private static final PathFilter LZOP_DEFAULT_SUFFIX_FILTER = new PathFilter() { - @Override - public boolean accept(Path path) - { - return path.toString().endsWith(".lzo"); - } - }; - - private static final PathFilter LZOP_INDEX_DEFAULT_SUFFIX_FILTER = new PathFilter() { - @Override - public boolean accept(Path path) - { - return path.toString().endsWith(".lzo.index"); - } - }; - static { DateTimeParser[] timestampWithoutTimeZoneParser = { DateTimeFormat.forPattern("yyyy-M-d").getParser(), @@ -391,21 +373,6 @@ public static boolean isSplittable(InputFormat inputFormat, FileSystem fil } } - public static boolean isLzopCompressedFile(Path filePath) - { - return LZOP_DEFAULT_SUFFIX_FILTER.accept(filePath); - } - - public static boolean isLzopIndexFile(Path filePath) - { - return LZOP_INDEX_DEFAULT_SUFFIX_FILTER.accept(filePath); - } - - public static Path getLzopIndexPath(Path lzoPath) - { - return lzoPath.suffix(LZO_INDEX_SUFFIX); - } - public static StructObjectInspector getTableObjectInspector(@SuppressWarnings("deprecation") Deserializer deserializer) { try { diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java index 077a409fd2a2e..5842c3e2fbf06 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java @@ -18,8 +18,8 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; -import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static com.google.common.base.MoreObjects.toStringHelper; /** diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java index c1c736a9f4536..8b662d93386b4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolverFactory.java @@ -13,9 +13,9 @@ */ package com.facebook.presto.twitter.hive.thrift; +import com.facebook.airlift.log.Logger; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import io.airlift.log.Logger; import java.io.IOException; import java.util.Properties; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java index 001994f7a7e4e..372990ed14047 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java @@ -20,9 +20,9 @@ import java.util.Properties; -import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; -import static com.facebook.presto.hive.HiveErrorCode.HIVE_UNKNOWN_ERROR; -import static com.facebook.presto.hive.HiveUtil.checkCondition; +import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_UNSUPPORTED_FORMAT; +import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static org.apache.hadoop.hive.serde.Constants.SERIALIZATION_CLASS; public class ThriftGeneralDeserializer @@ -37,7 +37,7 @@ public ThriftGeneralDeserializer(Configuration conf, Properties properties) public ThriftGenericRow deserialize(Writable writable, short[] thriftIds) { - checkCondition(writable instanceof ThriftWritable, HIVE_UNKNOWN_ERROR, "Not an instance of ThriftWritable: " + writable); + checkCondition(writable instanceof ThriftWritable, HIVE_UNSUPPORTED_FORMAT, "Not an instance of ThriftWritable: " + writable); ThriftGenericRow row = (ThriftGenericRow) ((ThriftWritable) writable).get(); try { row.parse(thriftIds); diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java index 5b961f7d813ac..d204bed634038 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGenericRow.java @@ -13,7 +13,7 @@ */ package com.facebook.presto.twitter.hive.thrift; -import io.airlift.log.Logger; +import com.facebook.airlift.log.Logger; import org.apache.commons.lang.ArrayUtils; import org.apache.thrift.TBase; import org.apache.thrift.TException; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java index c17de71972c28..3a4e5d09ce984 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.twitter.hive.thrift; +import com.facebook.airlift.log.Logger; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveErrorCode; import com.facebook.presto.hive.HiveType; @@ -24,7 +25,6 @@ import com.facebook.presto.spi.type.Decimals; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; -import io.airlift.log.Logger; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.hadoop.conf.Configuration; @@ -49,10 +49,10 @@ import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; import static com.facebook.presto.hive.HiveUtil.closeWithSuppression; -import static com.facebook.presto.hive.HiveUtil.isArrayType; -import static com.facebook.presto.hive.HiveUtil.isMapType; -import static com.facebook.presto.hive.HiveUtil.isRowType; import static com.facebook.presto.hive.HiveUtil.isStructuralType; +import static com.facebook.presto.hive.metastore.MetastoreUtil.isArrayType; +import static com.facebook.presto.hive.metastore.MetastoreUtil.isMapType; +import static com.facebook.presto.hive.metastore.MetastoreUtil.isRowType; import static com.facebook.presto.spi.type.BigintType.BIGINT; import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; import static com.facebook.presto.spi.type.Chars.isCharType; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java index 603cffabf111a..c1b027e80da07 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java @@ -37,13 +37,13 @@ import java.util.Properties; import java.util.Set; -import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.HiveStorageFormat.THRIFTBINARY; -import static com.facebook.presto.hive.HiveUtil.checkCondition; import static com.facebook.presto.hive.HiveUtil.createRecordReader; import static com.facebook.presto.hive.HiveUtil.getDeserializerClassName; -import static com.facebook.presto.hive.HiveUtil.getLzopIndexPath; -import static com.facebook.presto.hive.HiveUtil.isLzopCompressedFile; +import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; +import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.getLzopIndexPath; +import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.isLzopCompressedFile; import static java.util.Objects.requireNonNull; public class ThriftHiveRecordCursorProvider diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java index 630b6c4c953cb..9762804eb8fa1 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/AbstractTestHiveClient.java @@ -482,7 +482,6 @@ private static RowType toRowType(List columns) }).collect(toList())) .build(); - protected Set createTableFormats = difference(ImmutableSet.copyOf(HiveStorageFormat.values()), ImmutableSet.of(AVRO, THRIFTBINARY)); private static final SubfieldExtractor SUBFIELD_EXTRACTOR = new SubfieldExtractor(FUNCTION_RESOLUTION, ROW_EXPRESSION_SERVICE.getExpressionOptimizer(), SESSION); private static final TypeProvider TYPE_PROVIDER_AFTER = TypeProvider.copyOf(MISMATCH_SCHEMA_TABLE_AFTER.stream() @@ -547,7 +546,7 @@ private static RowExpression toRowExpression(String sql) row -> row.getField(0) != null && (short) row.getField(0) + 1 > 0, row -> row.getField(0) != null && (short) row.getField(0) + 1 < 0); - protected Set createTableFormats = difference(ImmutableSet.copyOf(HiveStorageFormat.values()), ImmutableSet.of(AVRO)); + protected Set createTableFormats = difference(ImmutableSet.copyOf(HiveStorageFormat.values()), ImmutableSet.of(AVRO, THRIFTBINARY)); private static final JoinCompiler JOIN_COMPILER = new JoinCompiler(MetadataManager.createTestMetadataManager(), new FeaturesConfig()); diff --git a/presto-twitter-functions/pom.xml b/presto-twitter-functions/pom.xml index 1ad1357993919..1f01ea6fc8aca 100644 --- a/presto-twitter-functions/pom.xml +++ b/presto-twitter-functions/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.228 + 0.230 presto-twitter-functions diff --git a/presto-twitter-gateway/etc/config.properties b/presto-twitter-gateway/etc/config.properties deleted file mode 100644 index 7e304027a676b..0000000000000 --- a/presto-twitter-gateway/etc/config.properties +++ /dev/null @@ -1,2 +0,0 @@ -node.environment=test -http-server.http.port=8088 diff --git a/presto-twitter-gateway/pom.xml b/presto-twitter-gateway/pom.xml deleted file mode 100644 index ebc9151aaaa6a..0000000000000 --- a/presto-twitter-gateway/pom.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - 4.0.0 - - - presto-root - com.facebook.presto - 0.228 - - - presto-twitter-gateway - Twitter's Presto Gateway Service - - - - ${project.parent.basedir} - main.java.gateway.PrestoGateway - - - - - com.facebook.presto - presto-spi - - - - com.facebook.presto - presto-client - - - - com.facebook.presto - presto-parser - - - - io.airlift - node - - - - io.airlift - units - - - - io.airlift - trace-token - - - - io.airlift - json - - - - io.airlift - bootstrap - - - - io.airlift - http-client - - - - io.airlift - http-server - - - - io.airlift - jaxrs - - - - io.airlift - log - - - - io.airlift - configuration - - - - io.airlift - log-manager - - - - io.airlift - event - - - - io.airlift - jmx - - - - io.airlift - jmx-http - - - - io.airlift - concurrent - - - - com.google.guava - guava - - - - com.google.inject - guice - - - - javax.ws.rs - javax.ws.rs-api - - - - javax.validation - validation-api - - - - com.google.code.findbugs - jsr305 - - - - javax.servlet - javax.servlet-api - - - - javax.annotation - javax.annotation-api - - - - javax.inject - javax.inject - - - - com.fasterxml.jackson.core - jackson-annotations - - - - com.fasterxml.jackson.core - jackson-databind - - - - com.fasterxml.jackson.core - jackson-core - - - - org.weakref - jmxutils - - - - - org.testng - testng - test - - - - com.facebook.presto - presto-main - test - - - - com.facebook.presto - presto-tpch - test - - - - com.facebook.presto - presto-jdbc - test - - - org.apache.curator - curator-test - test - - - - com.101tec - zkclient - test - - - diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java deleted file mode 100644 index a2b2df3b7b83f..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayConfig.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.google.common.base.Splitter; -import io.airlift.configuration.Config; -import io.airlift.configuration.ConfigDescription; - -import javax.validation.constraints.NotNull; - -import java.net.URI; -import java.util.List; - -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Streams.stream; - -public class GatewayConfig -{ - private static final Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings(); - - private String version = getClass().getPackage().getImplementationVersion(); - private ClusterManagerType clusterManagerType; - private List clusters; - - public enum ClusterManagerType - { - STATIC - } - - @NotNull(message = "Gateway version cannot be automatically determined") - public String getVersion() - { - return version; - } - - @Config("gateway.version") - public GatewayConfig setVersion(String version) - { - this.version = version; - return this; - } - - @NotNull - public ClusterManagerType getClusterManagerType() - { - return clusterManagerType; - } - - @Config("gateway.cluster-manager.type") - @ConfigDescription("Cluster manager type (supported types: STATIC)") - public GatewayConfig setClusterManagerType(String type) - { - if (type == null) { - clusterManagerType = null; - return this; - } - - clusterManagerType = ClusterManagerType.valueOf(type); - return this; - } - - @NotNull - public List getClusters() - { - return clusters; - } - - @Config("gateway.cluster-manager.static.cluster-list") - @ConfigDescription("List of Presto clusters behind the gateway") - public GatewayConfig setClusters(String clusterList) - { - if (clusterList == null) { - this.clusters = null; - return this; - } - this.clusters = stream(SPLITTER.split(clusterList)) - .map(URI::create) - .collect(toImmutableList()); - return this; - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java deleted file mode 100644 index 3d80dda5c88ad..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayModule.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.facebook.presto.client.NodeVersion; -import com.google.inject.Binder; -import com.google.inject.Scopes; -import com.twitter.presto.gateway.cluster.ClusterManager; -import com.twitter.presto.gateway.cluster.ClusterManagerResource; -import com.twitter.presto.gateway.cluster.ClusterSelector; -import com.twitter.presto.gateway.cluster.ClusterStatusResource; -import com.twitter.presto.gateway.cluster.ClusterStatusTracker; -import com.twitter.presto.gateway.cluster.ForQueryTracker; -import com.twitter.presto.gateway.cluster.RandomSelector; -import com.twitter.presto.gateway.cluster.StaticClusterManager; -import io.airlift.configuration.AbstractConfigurationAwareModule; -import io.airlift.units.Duration; - -import static com.twitter.presto.gateway.GatewayConfig.ClusterManagerType; -import static io.airlift.configuration.ConfigBinder.configBinder; -import static io.airlift.http.client.HttpClientBinder.httpClientBinder; -import static io.airlift.jaxrs.JaxrsBinder.jaxrsBinder; -import static java.util.concurrent.TimeUnit.SECONDS; - -public class GatewayModule - extends AbstractConfigurationAwareModule -{ - @Override - protected void setup(Binder binder) - { - configBinder(binder).bindConfig(GatewayConfig.class); - binder.bind(ClusterSelector.class).to(RandomSelector.class).in(Scopes.SINGLETON); - - GatewayConfig gatewayConfig = buildConfigObject(GatewayConfig.class); - ClusterManagerType type = buildConfigObject(GatewayConfig.class).getClusterManagerType(); - switch (type) { - case STATIC: - binder.bind(ClusterManager.class).to(StaticClusterManager.class).in(Scopes.SINGLETON); - break; - default: - throw new AssertionError("Unsupported cluster manager type: " + type); - } - - httpClientBinder(binder).bindHttpClient("query-tracker", ForQueryTracker.class) - .withConfigDefaults(config -> { - config.setIdleTimeout(new Duration(30, SECONDS)); - config.setRequestTimeout(new Duration(10, SECONDS)); - }); - - NodeVersion nodeVersion = new NodeVersion(gatewayConfig.getVersion()); - binder.bind(NodeVersion.class).toInstance(nodeVersion); - - binder.bind(ClusterStatusTracker.class).in(Scopes.SINGLETON); - - jaxrsBinder(binder).bind(GatewayResource.class); - jaxrsBinder(binder).bind(ClusterManagerResource.class); - jaxrsBinder(binder).bind(ClusterStatusResource.class); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java deleted file mode 100644 index b46e51149ec57..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/GatewayResource.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.google.inject.Inject; -import com.twitter.presto.gateway.cluster.ClusterSelector; -import io.airlift.log.Logger; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Response; - -import java.net.URI; - -import static io.airlift.http.client.HttpUriBuilder.uriBuilderFrom; -import static java.util.Objects.requireNonNull; -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; -import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE; -import static javax.ws.rs.core.Response.Status.BAD_GATEWAY; - -@Path("/") -public class GatewayResource -{ - private static final Logger log = Logger.get(GatewayResource.class); - - private final ClusterSelector clusterSelector; - - @Inject - public GatewayResource(ClusterSelector clusterSelector) - { - this.clusterSelector = requireNonNull(clusterSelector, "clusterSelector is null"); - } - - @GET - @Path("/v1/gateway") - public String getGateInfo() - { - return "hello world"; - } - - @POST - @Path("/v1/statement") - @Produces(APPLICATION_JSON) - public Response routeQuery(String statement, @Context HttpServletRequest servletRequest) - { - RequestInfo requestInfo = new RequestInfo(servletRequest, statement); - URI coordinatorUri = clusterSelector.getPrestoCluster(requestInfo).orElseThrow(() -> badRequest(BAD_GATEWAY, "No active server available")); - URI statementUri = uriBuilderFrom(coordinatorUri).replacePath("/v1/statement").build(); - log.info("route query to %s", statementUri); - return Response.temporaryRedirect(statementUri).build(); - } - - private static WebApplicationException badRequest(Response.Status status, String message) - { - throw new WebApplicationException( - Response.status(status) - .type(TEXT_PLAIN_TYPE) - .entity(message) - .build()); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java deleted file mode 100644 index 0c948fd9d512a..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/PrestoGateway.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.google.common.collect.ImmutableList; -import com.google.inject.Module; -import io.airlift.bootstrap.Bootstrap; -import io.airlift.event.client.EventModule; -import io.airlift.http.server.HttpServerModule; -import io.airlift.jaxrs.JaxrsModule; -import io.airlift.jmx.JmxHttpModule; -import io.airlift.jmx.JmxModule; -import io.airlift.json.JsonModule; -import io.airlift.log.LogJmxModule; -import io.airlift.log.Logger; -import io.airlift.node.NodeModule; -import io.airlift.tracetoken.TraceTokenModule; -import org.weakref.jmx.guice.MBeanModule; - -public class PrestoGateway -{ - private PrestoGateway() {} - - public static void start(Module... extraModules) - { - Bootstrap app = new Bootstrap(ImmutableList.builder() - .add(new NodeModule()) - .add(new HttpServerModule()) - .add(new JsonModule()) - .add(new JaxrsModule(true)) - .add(new MBeanModule()) - .add(new JmxModule()) - .add(new JmxHttpModule()) - .add(new TraceTokenModule()) - .add(new LogJmxModule()) - .add(new EventModule()) - .add(new GatewayModule()) - .add(extraModules) - .build()); - - Logger log = Logger.get(PrestoGateway.class); - try { - app.strictConfig().initialize(); - log.info("======== SERVER STARTED ========"); - } - catch (Throwable t) { - log.error(t); - System.exit(1); - } - } - - public static void main(String[] args) - { - start(); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java deleted file mode 100644 index d3229f68b631a..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/RequestInfo.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.facebook.presto.spi.security.Identity; - -import javax.annotation.Nullable; -import javax.servlet.http.HttpServletRequest; -import javax.validation.constraints.NotNull; - -import java.util.Optional; - -import static com.facebook.presto.client.PrestoHeaders.PRESTO_CATALOG; -import static com.facebook.presto.client.PrestoHeaders.PRESTO_SCHEMA; -import static com.facebook.presto.client.PrestoHeaders.PRESTO_SOURCE; -import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; -import static com.google.common.base.Strings.emptyToNull; -import static com.google.common.base.Strings.nullToEmpty; -import static java.util.Objects.requireNonNull; - -public class RequestInfo -{ - private final String catalog; - private final String schema; - private final String source; - private final Identity identity; - - private final String query; - - public RequestInfo(HttpServletRequest servletRequest, String query) - { - this.catalog = trimEmptyToNull(servletRequest.getHeader(PRESTO_CATALOG)); - this.schema = trimEmptyToNull(servletRequest.getHeader(PRESTO_SCHEMA)); - this.source = servletRequest.getHeader(PRESTO_SOURCE); - this.identity = new Identity( - trimEmptyToNull(servletRequest.getHeader(PRESTO_USER)), - Optional.ofNullable(servletRequest.getUserPrincipal())); - this.query = requireNonNull(query, "query is null"); - } - - @Nullable - public String getCatalog() - { - return catalog; - } - - @Nullable - public String getSchema() - { - return schema; - } - - @Nullable - public String getSource() - { - return source; - } - - @NotNull - public Identity getIdentity() - { - return identity; - } - - @NotNull - public String getQuery() - { - return query; - } - - private static String trimEmptyToNull(String value) - { - return emptyToNull(nullToEmpty(value).trim()); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java deleted file mode 100644 index 54059adcc64d8..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManager.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.twitter.presto.gateway.query.QueryCategory; - -import java.net.URI; -import java.util.List; - -public interface ClusterManager -{ - List getAllClusters(); - - List getClusters(QueryCategory category); -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java deleted file mode 100644 index 0fcbee0277a86..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterManagerResource.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.google.inject.Inject; -import io.airlift.log.Logger; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; - -import java.net.URI; -import java.util.List; - -import static java.util.Objects.requireNonNull; - -@Path("/v1/gateway/managers") -public class ClusterManagerResource -{ - private static final Logger log = Logger.get(ClusterStatusResource.class); - - private final ClusterManager clusterManager; - - @Inject - public ClusterManagerResource(ClusterManager clusterManager) - { - this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); - } - - @GET - public List getAllClusters() - { - return clusterManager.getAllClusters(); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java deleted file mode 100644 index e040f9b853a86..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterSelector.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.twitter.presto.gateway.RequestInfo; - -import java.net.URI; -import java.util.Optional; - -public interface ClusterSelector -{ - Optional getPrestoCluster(RequestInfo request); -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java deleted file mode 100644 index 2a79a6ac45c58..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusResource.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.facebook.presto.client.NodeVersion; -import com.facebook.presto.client.ServerInfo; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.JsonNode; -import com.google.inject.Inject; -import io.airlift.log.Logger; -import io.airlift.node.NodeInfo; - -import javax.annotation.concurrent.Immutable; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; - -import java.util.List; -import java.util.Optional; - -import static java.util.Objects.requireNonNull; -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; - -@Path("/") -public class ClusterStatusResource -{ - private static final Logger log = Logger.get(ClusterStatusResource.class); - - private final NodeVersion nodeVersion; - private final String environment; - private final ClusterStatusTracker clusterStatusTracker; - - @Inject - public ClusterStatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ClusterStatusTracker clusterStatusTracker) - { - this.nodeVersion = requireNonNull(nodeVersion, "nodeVersion is null"); - this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); - this.clusterStatusTracker = requireNonNull(clusterStatusTracker, "clusterStatusTracker is null"); - } - - // The web UI depend on the following service endpoints. - @GET - @Path("/v1/info") - @Produces(APPLICATION_JSON) - public ServerInfo getInfo() - { - return new ServerInfo(nodeVersion, environment, true, false, Optional.empty()); - } - - @GET - @Path("/v1/cluster") - @Produces(APPLICATION_JSON) - public ClusterStats getClusterStats() - { - return new ClusterStats( - clusterStatusTracker.getRunningQueries(), - clusterStatusTracker.getBlockedQueries(), - clusterStatusTracker.getQueuedQueries(), - clusterStatusTracker.getClusterCount(), - clusterStatusTracker.getActiveWorkers(), - clusterStatusTracker.getRunningDrivers()); - } - - @GET - @Path("/v1/query") - public List getAllQueryInfo(@QueryParam("state") String stateFilter) - { - return clusterStatusTracker.getAllQueryInfos(); - } - - @Immutable - public static class ClusterStats - { - private final long runningQueries; - private final long blockedQueries; - private final long queuedQueries; - private final long clusterCount; - private final long activeWorkers; - private final long runningDrivers; - - @JsonCreator - public ClusterStats( - @JsonProperty("runningQueries") long runningQueries, - @JsonProperty("blockedQueries") long blockedQueries, - @JsonProperty("queuedQueries") long queuedQueries, - @JsonProperty("clusterCount") long clusterCount, - @JsonProperty("activeWorkers") long activeWorkers, - @JsonProperty("runningDrivers") long runningDrivers) - { - this.runningQueries = runningQueries; - this.blockedQueries = blockedQueries; - this.queuedQueries = queuedQueries; - this.clusterCount = clusterCount; - this.activeWorkers = activeWorkers; - this.runningDrivers = runningDrivers; - } - - @JsonProperty - public long getRunningQueries() - { - return runningQueries; - } - - @JsonProperty - public long getBlockedQueries() - { - return blockedQueries; - } - - @JsonProperty - public long getQueuedQueries() - { - return queuedQueries; - } - - @JsonProperty - public long getClusterCount() - { - return clusterCount; - } - - @JsonProperty - public long getActiveWorkers() - { - return activeWorkers; - } - - @JsonProperty - public long getRunningDrivers() - { - return runningDrivers; - } - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java deleted file mode 100644 index 7108afd3ae1d0..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ClusterStatusTracker.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.ImmutableList; -import com.google.inject.Inject; -import io.airlift.http.client.HttpClient; -import io.airlift.log.Logger; - -import javax.annotation.PostConstruct; - -import java.net.URI; -import java.util.List; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Sets.difference; -import static com.google.common.collect.Sets.newHashSet; -import static io.airlift.concurrent.Threads.threadsNamed; -import static io.airlift.http.client.HttpUriBuilder.uriBuilderFrom; -import static java.util.Objects.requireNonNull; -import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor; - -public class ClusterStatusTracker -{ - private static final Logger log = Logger.get(ClusterStatusTracker.class); - private static final String QUERY_INFO = "/v1/query"; - private static final String CLUSTER_INFO = "/v1/cluster"; - - private final ClusterManager clusterManager; - private final HttpClient httpClient; - private final ScheduledExecutorService queryInfoUpdateExecutor; - - // Cluster status - private final ConcurrentHashMap remoteClusterInfos = new ConcurrentHashMap<>(); - private final ConcurrentHashMap remoteQueryInfos = new ConcurrentHashMap<>(); - - @Inject - public ClusterStatusTracker( - ClusterManager clusterManager, - @ForQueryTracker HttpClient httpClient) - { - this.httpClient = requireNonNull(httpClient, "httpClient is null"); - this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); - this.queryInfoUpdateExecutor = newSingleThreadScheduledExecutor(threadsNamed("query-info-poller-%s")); - } - - @PostConstruct - public void startPollingQueryInfo() - { - clusterManager.getAllClusters().stream() - .forEach(uri -> { - remoteClusterInfos.put(uri, createRemoteClusterInfo(uri)); - remoteQueryInfos.put(uri, createRemoteQueryInfo(uri)); - }); - - queryInfoUpdateExecutor.scheduleWithFixedDelay(() -> { - try { - pollQueryInfos(); - } - catch (Exception e) { - log.error(e, "Error polling list of queries"); - } - }, 5, 5, TimeUnit.SECONDS); - - pollQueryInfos(); - } - - private void pollQueryInfos() - { - Set allClusters = newHashSet(clusterManager.getAllClusters()); - Set inactiveClusters = difference(remoteQueryInfos.keySet(), allClusters).immutableCopy(); - remoteQueryInfos.keySet().removeAll(inactiveClusters); - - allClusters.stream() - .forEach(uri -> { - remoteClusterInfos.putIfAbsent(uri, createRemoteClusterInfo(uri)); - remoteQueryInfos.putIfAbsent(uri, createRemoteQueryInfo(uri)); - }); - - remoteClusterInfos.values().forEach(RemoteClusterInfo::asyncRefresh); - remoteQueryInfos.values().forEach(RemoteQueryInfo::asyncRefresh); - } - - public long getRunningQueries() - { - return remoteClusterInfos.values().stream() - .mapToLong(RemoteClusterInfo::getRunningQueries) - .sum(); - } - - public long getBlockedQueries() - { - return remoteClusterInfos.values().stream() - .mapToLong(RemoteClusterInfo::getBlockedQueries) - .sum(); - } - - public long getQueuedQueries() - { - return remoteClusterInfos.values().stream() - .mapToLong(RemoteClusterInfo::getQueuedQueries) - .sum(); - } - - public long getClusterCount() - { - return remoteClusterInfos.entrySet().size(); - } - - public long getActiveWorkers() - { - return remoteClusterInfos.values().stream() - .mapToLong(RemoteClusterInfo::getActiveWorkers) - .sum(); - } - - public long getRunningDrivers() - { - return remoteClusterInfos.values().stream() - .mapToLong(RemoteClusterInfo::getRunningDrivers) - .sum(); - } - - public List getAllQueryInfos() - { - ImmutableList.Builder builder = ImmutableList.builder(); - remoteQueryInfos.forEach((coordinator, remoteQueryInfo) -> - builder.addAll(remoteQueryInfo.getQueryList().orElse(ImmutableList.of()).stream() - .map(queryInfo -> ((ObjectNode) queryInfo).put("coordinatorUri", coordinator.toASCIIString())) - .collect(toImmutableList()))); - return builder.build(); - } - - private RemoteQueryInfo createRemoteQueryInfo(URI uri) - { - return new RemoteQueryInfo(httpClient, uriBuilderFrom(uri).appendPath(QUERY_INFO).build()); - } - - private RemoteClusterInfo createRemoteClusterInfo(URI uri) - { - return new RemoteClusterInfo(httpClient, uriBuilderFrom(uri).appendPath(CLUSTER_INFO).build()); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java deleted file mode 100644 index 4bc1d0f3c9d39..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/ForQueryTracker.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import javax.inject.Qualifier; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.FIELD; -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -@Retention(RUNTIME) -@Target({FIELD, PARAMETER, METHOD}) -@Qualifier -public @interface ForQueryTracker -{ -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java deleted file mode 100644 index 19d048337edc0..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RandomSelector.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.twitter.presto.gateway.RequestInfo; -import com.twitter.presto.gateway.query.QueryCategory; - -import javax.inject.Inject; - -import java.net.URI; -import java.util.List; -import java.util.Optional; -import java.util.Random; - -import static com.twitter.presto.gateway.query.QueryClassifier.classify; -import static java.util.Objects.requireNonNull; - -public class RandomSelector - implements ClusterSelector -{ - private static final Random random = new Random(); - - private final ClusterManager clusterManager; - - @Inject - public RandomSelector(ClusterManager clusterManager) - { - this.clusterManager = requireNonNull(clusterManager, "clusterManager is null"); - } - - @Override - public Optional getPrestoCluster(RequestInfo request) - { - QueryCategory category = classify(request); - List candidates = clusterManager.getClusters(category); - if (candidates.isEmpty()) { - return Optional.empty(); - } - - return Optional.of(candidates.get(random.nextInt(candidates.size()))); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java deleted file mode 100644 index 2f6500facf4f8..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteClusterInfo.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.airlift.http.client.HttpClient; -import io.airlift.log.Logger; - -import java.net.URI; -import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; - -public class RemoteClusterInfo - extends RemoteState -{ - private static final ObjectMapper mapper = new ObjectMapper(); - private static final Logger log = Logger.get(RemoteClusterInfo.class); - private static final String RUNNING_QUERIES = "runningQueries"; - private static final String BLOCKED_QUERIES = "blockedQueries"; - private static final String QUEUED_QUERIES = "queuedQueries"; - private static final String ACTIVE_WORKERS = "activeWorkers"; - private static final String RUNNING_DRIVERS = "runningDrivers"; - - private final AtomicLong runningQueries = new AtomicLong(); - private final AtomicLong blockedQueries = new AtomicLong(); - private final AtomicLong queuedQueries = new AtomicLong(); - private final AtomicLong activeWorkers = new AtomicLong(); - private final AtomicLong runningDrivers = new AtomicLong(); - - public RemoteClusterInfo(HttpClient httpClient, URI remoteUri) - { - super(httpClient, remoteUri); - } - - public void handleResponse(JsonNode response) - { - Map fields = mapper.convertValue(response, Map.class); - runningQueries.set(fields.get(RUNNING_QUERIES)); - blockedQueries.set(fields.get(BLOCKED_QUERIES)); - queuedQueries.set(fields.get(QUEUED_QUERIES)); - activeWorkers.set(fields.get(ACTIVE_WORKERS)); - runningDrivers.set(fields.get(RUNNING_DRIVERS)); - } - - public long getRunningQueries() - { - return runningQueries.get(); - } - - public long getBlockedQueries() - { - return blockedQueries.get(); - } - - public long getQueuedQueries() - { - return queuedQueries.get(); - } - - public long getActiveWorkers() - { - return activeWorkers.get(); - } - - public long getRunningDrivers() - { - return runningDrivers.get(); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java deleted file mode 100644 index 7c0d616430604..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteQueryInfo.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectReader; -import io.airlift.http.client.HttpClient; -import io.airlift.log.Logger; - -import javax.annotation.concurrent.ThreadSafe; - -import java.io.IOException; -import java.net.URI; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.atomic.AtomicReference; - -@ThreadSafe -public class RemoteQueryInfo - extends RemoteState -{ - private static final Logger log = Logger.get(RemoteQueryInfo.class); - private static final ObjectMapper mapper = new ObjectMapper(); - - private final AtomicReference>> queryList = new AtomicReference<>(Optional.empty()); - - public RemoteQueryInfo(HttpClient httpClient, URI remoteUri) - { - super(httpClient, remoteUri); - } - - public Optional> getQueryList() - { - return queryList.get(); - } - - public void handleResponse(JsonNode response) - { - ObjectReader reader = mapper.readerFor(new TypeReference>() {}); - try { - queryList.set(Optional.ofNullable(reader.readValue(response))); - } - catch (IOException e) { - log.warn("Error parsing response: %s", response.toString()); - } - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java deleted file mode 100644 index 989fb96cfbaf8..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/RemoteState.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.fasterxml.jackson.databind.JsonNode; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import io.airlift.http.client.FullJsonResponseHandler; -import io.airlift.http.client.HttpClient; -import io.airlift.http.client.Request; -import io.airlift.json.JsonCodec; -import io.airlift.log.Logger; -import io.airlift.units.Duration; - -import javax.annotation.Nullable; -import javax.annotation.concurrent.ThreadSafe; - -import java.net.URI; -import java.util.concurrent.Future; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.AtomicReference; - -import static com.google.common.util.concurrent.MoreExecutors.directExecutor; -import static io.airlift.http.client.FullJsonResponseHandler.createFullJsonResponseHandler; -import static io.airlift.http.client.HttpStatus.OK; -import static io.airlift.http.client.Request.Builder.prepareGet; -import static io.airlift.json.JsonCodec.jsonCodec; -import static io.airlift.units.Duration.nanosSince; -import static java.util.Objects.requireNonNull; -import static java.util.concurrent.TimeUnit.SECONDS; - -@ThreadSafe -public class RemoteState -{ - private static final Logger log = Logger.get(RemoteQueryInfo.class); - private static final JsonCodec JSON_CODEC = jsonCodec(JsonNode.class); - - private final HttpClient httpClient; - private final URI remoteUri; - private final AtomicReference> future = new AtomicReference<>(); - private final AtomicLong lastUpdateNanos = new AtomicLong(); - private final AtomicLong lastWarningLogged = new AtomicLong(); - - public RemoteState(HttpClient httpClient, URI remoteUri) - { - this.httpClient = requireNonNull(httpClient, "httpClient is null"); - this.remoteUri = requireNonNull(remoteUri, "remoteUri is null"); - } - - public void handleResponse(JsonNode response) {} - - public synchronized void asyncRefresh() - { - Duration sinceUpdate = nanosSince(lastUpdateNanos.get()); - - if (nanosSince(lastWarningLogged.get()).toMillis() > 1_000 && - sinceUpdate.toMillis() > 10_000 && - future.get() != null) { - log.warn("Coordinator update request to %s has not returned in %s", remoteUri, sinceUpdate.toString(SECONDS)); - lastWarningLogged.set(System.nanoTime()); - } - - if (sinceUpdate.toMillis() > 1_000 && future.get() == null) { - Request request = prepareGet() - .setUri(remoteUri) - .build(); - - HttpClient.HttpResponseFuture> responseFuture = httpClient.executeAsync(request, createFullJsonResponseHandler(JSON_CODEC)); - future.compareAndSet(null, responseFuture); - - Futures.addCallback(responseFuture, new FutureCallback>() - { - @Override - public void onSuccess(@Nullable FullJsonResponseHandler.JsonResponse result) - { - lastUpdateNanos.set(System.nanoTime()); - future.compareAndSet(responseFuture, null); - if (result != null) { - if (result.hasValue()) { - handleResponse(result.getValue()); - } - if (result.getStatusCode() != OK.code()) { - log.warn("Error fetching node state from %s returned status %d: %s", remoteUri, result.getStatusCode(), result.getStatusMessage()); - return; - } - } - } - - @Override - public void onFailure(Throwable t) - { - log.warn("Error fetching query infos from %s: %s", remoteUri, t.getMessage()); - lastUpdateNanos.set(System.nanoTime()); - future.compareAndSet(responseFuture, null); - } - }, directExecutor()); - } - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java deleted file mode 100644 index 95972c9bf8b14..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/cluster/StaticClusterManager.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.cluster; - -import com.google.common.collect.ImmutableMap; -import com.google.inject.Inject; -import com.twitter.presto.gateway.GatewayConfig; -import com.twitter.presto.gateway.query.QueryCategory; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.twitter.presto.gateway.query.QueryCategory.BATCH; -import static com.twitter.presto.gateway.query.QueryCategory.INTERACTIVE; -import static com.twitter.presto.gateway.query.QueryCategory.REALTIME; - -public class StaticClusterManager - implements ClusterManager -{ - private final Map> clusters; - - @Inject - public StaticClusterManager(GatewayConfig config) - { - clusters = ImmutableMap.>builder() - .put(REALTIME, config.getClusters()) - .put(INTERACTIVE, config.getClusters()) - .put(BATCH, config.getClusters()) - .build(); - } - - @Override - public List getAllClusters() - { - return clusters.values().stream() - .flatMap(List::stream) - .distinct() - .collect(toImmutableList()); - } - - @Override - public List getClusters(QueryCategory category) - { - return clusters.get(category); - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java deleted file mode 100644 index 2fa4e0b64f216..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryCategory.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.query; - -public enum QueryCategory -{ - REALTIME, - INTERACTIVE, - BATCH -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java deleted file mode 100644 index c91ffece2f535..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/QueryClassifier.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.query; - -import com.facebook.presto.spi.resourceGroups.QueryType; -import com.facebook.presto.sql.parser.ParsingOptions; -import com.facebook.presto.sql.parser.SqlParser; -import com.facebook.presto.sql.tree.Statement; -import com.twitter.presto.gateway.RequestInfo; - -import java.util.Optional; - -import static com.twitter.presto.gateway.query.QueryCategory.BATCH; -import static com.twitter.presto.gateway.query.QueryCategory.INTERACTIVE; -import static com.twitter.presto.gateway.query.QueryCategory.REALTIME; - -public class QueryClassifier -{ - private static final SqlParser SQL_PARSER = new SqlParser(); - - private QueryClassifier() {} - - public static QueryCategory classify(RequestInfo requestInfo) - { - String queryString = requestInfo.getQuery(); - Statement statement = SQL_PARSER.createStatement(queryString, new ParsingOptions()); - Optional type = StatementUtils.getQueryType(statement.getClass()); - - if (type.isPresent()) { - switch (type.get()) { - case DATA_DEFINITION: - case DESCRIBE: - case EXPLAIN: - return REALTIME; - case SELECT: - case INSERT: - case DELETE: - case ANALYZE: - if (requestInfo.getSource().contains("schedule")) { - return BATCH; - } - return INTERACTIVE; - default: - // by default query is distributed to BATCH - return BATCH; - } - } - - // by default query is distributed to BATCH - return BATCH; - } -} diff --git a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java b/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java deleted file mode 100644 index 7fdf8d75a79a6..0000000000000 --- a/presto-twitter-gateway/src/main/java/com/twitter/presto/gateway/query/StatementUtils.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * 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 com.twitter.presto.gateway.query; - -import com.facebook.presto.spi.resourceGroups.QueryType; -import com.facebook.presto.sql.tree.AddColumn; -import com.facebook.presto.sql.tree.Analyze; -import com.facebook.presto.sql.tree.Call; -import com.facebook.presto.sql.tree.Commit; -import com.facebook.presto.sql.tree.CreateRole; -import com.facebook.presto.sql.tree.CreateSchema; -import com.facebook.presto.sql.tree.CreateTable; -import com.facebook.presto.sql.tree.CreateTableAsSelect; -import com.facebook.presto.sql.tree.CreateView; -import com.facebook.presto.sql.tree.Deallocate; -import com.facebook.presto.sql.tree.Delete; -import com.facebook.presto.sql.tree.DescribeInput; -import com.facebook.presto.sql.tree.DescribeOutput; -import com.facebook.presto.sql.tree.DropColumn; -import com.facebook.presto.sql.tree.DropRole; -import com.facebook.presto.sql.tree.DropSchema; -import com.facebook.presto.sql.tree.DropTable; -import com.facebook.presto.sql.tree.DropView; -import com.facebook.presto.sql.tree.Explain; -import com.facebook.presto.sql.tree.Grant; -import com.facebook.presto.sql.tree.GrantRoles; -import com.facebook.presto.sql.tree.Insert; -import com.facebook.presto.sql.tree.Prepare; -import com.facebook.presto.sql.tree.Query; -import com.facebook.presto.sql.tree.RenameColumn; -import com.facebook.presto.sql.tree.RenameSchema; -import com.facebook.presto.sql.tree.RenameTable; -import com.facebook.presto.sql.tree.ResetSession; -import com.facebook.presto.sql.tree.Revoke; -import com.facebook.presto.sql.tree.RevokeRoles; -import com.facebook.presto.sql.tree.Rollback; -import com.facebook.presto.sql.tree.SetRole; -import com.facebook.presto.sql.tree.SetSession; -import com.facebook.presto.sql.tree.ShowCatalogs; -import com.facebook.presto.sql.tree.ShowColumns; -import com.facebook.presto.sql.tree.ShowCreate; -import com.facebook.presto.sql.tree.ShowFunctions; -import com.facebook.presto.sql.tree.ShowGrants; -import com.facebook.presto.sql.tree.ShowRoleGrants; -import com.facebook.presto.sql.tree.ShowRoles; -import com.facebook.presto.sql.tree.ShowSchemas; -import com.facebook.presto.sql.tree.ShowSession; -import com.facebook.presto.sql.tree.ShowStats; -import com.facebook.presto.sql.tree.ShowTables; -import com.facebook.presto.sql.tree.StartTransaction; -import com.facebook.presto.sql.tree.Statement; -import com.facebook.presto.sql.tree.Use; -import com.google.common.collect.ImmutableMap; - -import java.util.Map; -import java.util.Optional; - -// Copied from com.facebook.presto.util to avoid dependency on presto-main -public final class StatementUtils -{ - private StatementUtils() {} - - private static final Map, QueryType> STATEMENT_QUERY_TYPES; - - static { - ImmutableMap.Builder, QueryType> builder = ImmutableMap.builder(); - builder.put(Query.class, QueryType.SELECT); - - builder.put(Explain.class, QueryType.EXPLAIN); - builder.put(Analyze.class, QueryType.ANALYZE); - - builder.put(CreateTableAsSelect.class, QueryType.INSERT); - builder.put(Insert.class, QueryType.INSERT); - - builder.put(Delete.class, QueryType.DELETE); - - builder.put(ShowCatalogs.class, QueryType.DESCRIBE); - builder.put(ShowCreate.class, QueryType.DESCRIBE); - builder.put(ShowFunctions.class, QueryType.DESCRIBE); - builder.put(ShowGrants.class, QueryType.DESCRIBE); - builder.put(ShowRoles.class, QueryType.DESCRIBE); - builder.put(ShowRoleGrants.class, QueryType.DESCRIBE); - builder.put(ShowSchemas.class, QueryType.DESCRIBE); - builder.put(ShowSession.class, QueryType.DESCRIBE); - builder.put(ShowStats.class, QueryType.DESCRIBE); - builder.put(ShowTables.class, QueryType.DESCRIBE); - builder.put(ShowColumns.class, QueryType.DESCRIBE); - builder.put(DescribeInput.class, QueryType.DESCRIBE); - builder.put(DescribeOutput.class, QueryType.DESCRIBE); - - builder.put(CreateSchema.class, QueryType.DATA_DEFINITION); - builder.put(DropSchema.class, QueryType.DATA_DEFINITION); - builder.put(RenameSchema.class, QueryType.DATA_DEFINITION); - builder.put(AddColumn.class, QueryType.DATA_DEFINITION); - builder.put(CreateTable.class, QueryType.DATA_DEFINITION); - builder.put(RenameTable.class, QueryType.DATA_DEFINITION); - builder.put(RenameColumn.class, QueryType.DATA_DEFINITION); - builder.put(DropColumn.class, QueryType.DATA_DEFINITION); - builder.put(DropTable.class, QueryType.DATA_DEFINITION); - builder.put(CreateView.class, QueryType.DATA_DEFINITION); - builder.put(DropView.class, QueryType.DATA_DEFINITION); - builder.put(Use.class, QueryType.DATA_DEFINITION); - builder.put(SetSession.class, QueryType.DATA_DEFINITION); - builder.put(ResetSession.class, QueryType.DATA_DEFINITION); - builder.put(StartTransaction.class, QueryType.DATA_DEFINITION); - builder.put(Commit.class, QueryType.DATA_DEFINITION); - builder.put(Rollback.class, QueryType.DATA_DEFINITION); - builder.put(Call.class, QueryType.DATA_DEFINITION); - builder.put(CreateRole.class, QueryType.DATA_DEFINITION); - builder.put(DropRole.class, QueryType.DATA_DEFINITION); - builder.put(GrantRoles.class, QueryType.DATA_DEFINITION); - builder.put(RevokeRoles.class, QueryType.DATA_DEFINITION); - builder.put(SetRole.class, QueryType.DATA_DEFINITION); - builder.put(Grant.class, QueryType.DATA_DEFINITION); - builder.put(Revoke.class, QueryType.DATA_DEFINITION); - builder.put(Prepare.class, QueryType.DATA_DEFINITION); - builder.put(Deallocate.class, QueryType.DATA_DEFINITION); - STATEMENT_QUERY_TYPES = builder.build(); - } - - public static Map, QueryType> getAllQueryTypes() - { - return STATEMENT_QUERY_TYPES; - } - - public static Optional getQueryType(Class statement) - { - return Optional.ofNullable(STATEMENT_QUERY_TYPES.get(statement)); - } - - public static boolean isTransactionControlStatement(Statement statement) - { - return statement instanceof StartTransaction || statement instanceof Commit || statement instanceof Rollback; - } -} diff --git a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java deleted file mode 100644 index b893e107e5028..0000000000000 --- a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestGatewayConfig.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.google.common.collect.ImmutableMap; -import org.testng.annotations.Test; - -import java.util.Map; - -import static io.airlift.configuration.testing.ConfigAssertions.assertFullMapping; -import static io.airlift.configuration.testing.ConfigAssertions.assertRecordedDefaults; -import static io.airlift.configuration.testing.ConfigAssertions.recordDefaults; - -public class TestGatewayConfig -{ - @Test - public void testDefaults() - { - assertRecordedDefaults(recordDefaults(GatewayConfig.class) - .setVersion(null) - .setClusterManagerType(null) - .setClusters(null)); - } - - @Test - public void testExplicitPropertyMappings() - { - Map properties = new ImmutableMap.Builder() - .put("gateway.version", "testversion") - .put("gateway.cluster-manager.type", "STATIC") - .put("gateway.cluster-manager.static.cluster-list", "http://example.net/,http://twitter.com/") - .build(); - - GatewayConfig expected = new GatewayConfig() - .setVersion("testversion") - .setClusterManagerType("STATIC") - .setClusters("http://example.net/,http://twitter.com/"); - - assertFullMapping(properties, expected); - } -} diff --git a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java b/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java deleted file mode 100644 index 5d87ca9477417..0000000000000 --- a/presto-twitter-gateway/src/test/java/com/twitter/presto/gateway/TestStaticClusterManager.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * 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 com.twitter.presto.gateway; - -import com.facebook.presto.execution.QueryState; -import com.facebook.presto.jdbc.PrestoResultSet; -import com.facebook.presto.server.testing.TestingPrestoServer; -import com.facebook.presto.tpch.TpchPlugin; -import com.google.common.collect.ImmutableList; -import com.google.inject.Injector; -import com.twitter.presto.gateway.cluster.ClusterStatusTracker; -import io.airlift.bootstrap.Bootstrap; -import io.airlift.bootstrap.LifeCycleManager; -import io.airlift.http.server.HttpServerInfo; -import io.airlift.http.server.testing.TestingHttpServerModule; -import io.airlift.jaxrs.JaxrsModule; -import io.airlift.json.JsonModule; -import io.airlift.log.Logging; -import io.airlift.node.testing.TestingNodeModule; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import java.net.URI; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.List; -import java.util.stream.Collectors; - -import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; -import static java.lang.String.format; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; - -public class TestStaticClusterManager -{ - private static final int NUM_CLUSTERS = 2; - private static final int NUM_QUERIES = 7; - - private List prestoServers; - private LifeCycleManager lifeCycleManager; - private HttpServerInfo httpServerInfo; - private ClusterStatusTracker clusterStatusTracker; - - @BeforeClass - public void setupServer() - throws Exception - { - Logging.initialize(); - ImmutableList.Builder builder = ImmutableList.builder(); - for (int i = 0; i < NUM_CLUSTERS; ++i) { - builder.add(createPrestoServer()); - } - prestoServers = builder.build(); - - Bootstrap app = new Bootstrap( - new TestingNodeModule("test"), - new TestingHttpServerModule(), - new JsonModule(), - new JaxrsModule(true), - new GatewayModule()); - - Injector injector = app - .strictConfig() - .doNotInitializeLogging() - .setRequiredConfigurationProperty("gateway.version", "testversion") - .setRequiredConfigurationProperty("gateway.cluster-manager.type", "STATIC") - .setRequiredConfigurationProperty("gateway.cluster-manager.static.cluster-list", getClusterList(prestoServers)) - .quiet() - .initialize(); - - lifeCycleManager = injector.getInstance(LifeCycleManager.class); - httpServerInfo = injector.getInstance(HttpServerInfo.class); - clusterStatusTracker = injector.getInstance(ClusterStatusTracker.class); - } - - @AfterClass(alwaysRun = true) - public void tearDownServer() - throws Exception - { - for (TestingPrestoServer prestoServer : prestoServers) { - prestoServer.close(); - } - lifeCycleManager.stop(); - } - - @Test - public void testQuery() - throws Exception - { - for (int i = 0; i < NUM_QUERIES; ++i) { - try (Connection connection = createConnection(httpServerInfo.getHttpUri()); - Statement statement = connection.createStatement(); - ResultSet rs = statement.executeQuery("SELECT row_number() OVER () n FROM tpch.tiny.orders")) { - long count = 0; - long sum = 0; - while (rs.next()) { - count++; - sum += rs.getLong("n"); - } - assertEquals(count, 15000); - assertEquals(sum, (count / 2) * (1 + count)); - } - } - - sleepUninterruptibly(10, SECONDS); - assertEquals(clusterStatusTracker.getAllQueryInfos().size(), NUM_QUERIES); - assertQueryState(); - } - - private void assertQueryState() - throws SQLException - { - String sql = "SELECT query_id, state FROM system.runtime.queries"; - int total = 0; - for (TestingPrestoServer server : prestoServers) { - try (Connection connection = createConnection(server.getBaseUrl()); - Statement statement = connection.createStatement(); - ResultSet rs = statement.executeQuery(sql)) { - String id = rs.unwrap(PrestoResultSet.class).getQueryId(); - int count = 0; - while (rs.next()) { - if (!rs.getString("query_id").equals(id)) { - assertEquals(QueryState.valueOf(rs.getString("state")), QueryState.FINISHED); - count++; - } - } - assertTrue(count > 0); - total += count; - } - } - assertEquals(total, NUM_QUERIES); - } - - private static TestingPrestoServer createPrestoServer() - throws Exception - { - TestingPrestoServer server = new TestingPrestoServer(); - server.installPlugin(new TpchPlugin()); - server.createCatalog("tpch", "tpch"); - server.refreshNodes(); - - return server; - } - - private static String getClusterList(List servers) - { - return servers.stream() - .map(TestingPrestoServer::getBaseUrl) - .map(URI::toString) - .collect(Collectors.joining(",")); - } - - private static Connection createConnection(URI uri) - throws SQLException - { - String url = format("jdbc:presto://%s:%s", uri.getHost(), uri.getPort()); - return DriverManager.getConnection(url, "test", null); - } -} diff --git a/presto-twitter-server-rpm/pom.xml b/presto-twitter-server-rpm/pom.xml index 4ecb1f31774d9..d2fb7f78032e9 100644 --- a/presto-twitter-server-rpm/pom.xml +++ b/presto-twitter-server-rpm/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.228 + 0.230 presto-twitter-server-rpm @@ -27,7 +27,7 @@ com.facebook.presto presto-twitter-server - 0.228 + 0.230 tar.gz runtime diff --git a/presto-twitter-server/pom.xml b/presto-twitter-server/pom.xml index 760f1f908383d..45388c81bce6c 100644 --- a/presto-twitter-server/pom.xml +++ b/presto-twitter-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.228 + 0.230 presto-twitter-server diff --git a/twitter-eventlistener-plugin/pom.xml b/twitter-eventlistener-plugin/pom.xml index 2ceaa29a66ec9..fb077947fe987 100644 --- a/twitter-eventlistener-plugin/pom.xml +++ b/twitter-eventlistener-plugin/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.228 + 0.230 4.0.0 @@ -25,17 +25,17 @@ - io.airlift + com.facebook.airlift bootstrap - io.airlift + com.facebook.airlift configuration - io.airlift + com.facebook.airlift log @@ -98,25 +98,25 @@ - io.airlift + com.facebook.airlift testing test - io.airlift + com.facebook.airlift http-server test - io.airlift + com.facebook.airlift jaxrs test - io.airlift + com.facebook.airlift node test diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java index 6894ebfc181b6..f076c8c851def 100644 --- a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerConfig.java @@ -13,7 +13,7 @@ */ package com.twitter.presto.plugin.eventlistener; -import io.airlift.configuration.Config; +import com.facebook.airlift.configuration.Config; public class TwitterEventListenerConfig { diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java index c28567b47c82a..caff149f13cf9 100644 --- a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerFactory.java @@ -13,10 +13,10 @@ */ package com.twitter.presto.plugin.eventlistener; +import com.facebook.airlift.bootstrap.Bootstrap; import com.facebook.presto.spi.eventlistener.EventListener; import com.facebook.presto.spi.eventlistener.EventListenerFactory; import com.google.inject.Injector; -import io.airlift.bootstrap.Bootstrap; import java.util.Map; @@ -45,10 +45,6 @@ public EventListener create(Map config) return injector.getInstance(TwitterEventListener.class); } - catch (InterruptedException ie) { - Thread.currentThread().interrupt(); - throw new RuntimeException("Interrupted while creating connector", ie); - } catch (Exception e) { throwIfUnchecked(e); throw new RuntimeException(e); diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java index a997b8b122c21..ef3fb3804b7ab 100644 --- a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/TwitterEventListenerModule.java @@ -13,14 +13,14 @@ */ package com.twitter.presto.plugin.eventlistener; +import com.facebook.airlift.configuration.AbstractConfigurationAwareModule; import com.google.inject.Binder; import com.google.inject.Scopes; import com.google.inject.multibindings.Multibinder; import com.twitter.presto.plugin.eventlistener.scriber.QueryCompletedEventScriber; -import io.airlift.configuration.AbstractConfigurationAwareModule; +import static com.facebook.airlift.configuration.ConfigBinder.configBinder; import static com.google.inject.multibindings.Multibinder.newSetBinder; -import static io.airlift.configuration.ConfigBinder.configBinder; public class TwitterEventListenerModule extends AbstractConfigurationAwareModule diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java index ed4986898c0d2..a4c027287ba43 100644 --- a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryCompletedEventScriber.java @@ -13,6 +13,7 @@ */ package com.twitter.presto.plugin.eventlistener.scriber; +import com.facebook.airlift.log.Logger; import com.facebook.presto.spi.eventlistener.QueryCompletedEvent; import com.facebook.presto.spi.eventlistener.QueryContext; import com.facebook.presto.spi.eventlistener.QueryFailureInfo; @@ -22,7 +23,6 @@ import com.twitter.presto.plugin.eventlistener.TwitterEventListenerConfig; import com.twitter.presto.thriftjava.QueryCompletionEvent; import com.twitter.presto.thriftjava.QueryState; -import io.airlift.log.Logger; import org.apache.thrift.TException; import javax.inject.Inject; diff --git a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java index f017e1556fc2b..22e4316585b8d 100644 --- a/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java +++ b/twitter-eventlistener-plugin/src/main/java/com/twitter/presto/plugin/eventlistener/scriber/QueryStatsHelper.java @@ -13,11 +13,11 @@ */ package com.twitter.presto.plugin.eventlistener.scriber; +import com.facebook.airlift.log.Logger; import com.facebook.presto.spi.eventlistener.QueryMetadata; import com.facebook.presto.spi.eventlistener.QueryStatistics; import com.twitter.presto.thriftjava.OperatorStats; import com.twitter.presto.thriftjava.QueryStageInfo; -import io.airlift.log.Logger; import io.airlift.units.DataSize; import io.airlift.units.Duration; diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java index b303e9c3f29b9..dcf1df2e09d72 100644 --- a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerConfig.java @@ -13,8 +13,8 @@ */ package com.twitter.presto.plugin.eventlistener; +import com.facebook.airlift.configuration.testing.ConfigAssertions; import com.google.common.collect.ImmutableMap; -import io.airlift.configuration.testing.ConfigAssertions; import org.testng.annotations.Test; import java.util.Map; diff --git a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java index 33938d407bb39..d4b45a2d81325 100644 --- a/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java +++ b/twitter-eventlistener-plugin/src/test/java/com/twitter/presto/plugin/eventlistener/TestTwitterEventListenerPlugin.java @@ -22,8 +22,8 @@ import java.util.Map; import java.util.ServiceLoader; +import static com.facebook.airlift.testing.Assertions.assertInstanceOf; import static com.google.common.collect.Iterables.getOnlyElement; -import static io.airlift.testing.Assertions.assertInstanceOf; import static org.testng.Assert.assertNotNull; public class TestTwitterEventListenerPlugin From 26dd33d61c4594614dd75001e85832c76d88dfe4 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 30 Jan 2020 15:12:03 -0800 Subject: [PATCH 097/129] By-pass authentication by source --- .../server/security/AuthenticationFilter.java | 13 ++++++++ .../server/security/SecurityConfig.java | 30 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java index e1fbd39cfcac7..b9206ad703fb8 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Set; +import static com.facebook.presto.client.PrestoHeaders.PRESTO_SOURCE; import static com.google.common.io.ByteStreams.copy; import static com.google.common.io.ByteStreams.nullOutputStream; import static com.google.common.net.HttpHeaders.WWW_AUTHENTICATE; @@ -45,12 +46,16 @@ public class AuthenticationFilter { private final List authenticators; private final String httpAuthenticationPathRegex; + private final boolean allowByPass; + private final String statementSourceByPassRegex; @Inject public AuthenticationFilter(List authenticators, SecurityConfig securityConfig) { this.authenticators = ImmutableList.copyOf(authenticators); this.httpAuthenticationPathRegex = requireNonNull(securityConfig.getHttpAuthenticationPathRegex(), "httpAuthenticationPathRegex is null"); + this.allowByPass = securityConfig.getAllowByPass(); + this.statementSourceByPassRegex = securityConfig.getStatementSourceByPassRegex(); } @Override @@ -94,6 +99,14 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo return; } + if (allowByPass) { + if (statementSourceByPassRegex != null + && request.getHeader(PRESTO_SOURCE) != null + && request.getHeader(PRESTO_SOURCE).matches(statementSourceByPassRegex)) { + nextFilter.doFilter(request, response); + } + } + // authentication failed skipRequestBody(request); diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java index 6aac8085eb109..b14e8a448c4b6 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java @@ -34,6 +34,9 @@ public class SecurityConfig private List authenticationTypes = ImmutableList.of(); private String httpAuthenticationPathRegex = "^\b$"; + private boolean allowByPass; + private String statementSourceByPassRegex = "^\\b$"; + public enum AuthenticationType { CERTIFICATE, @@ -54,6 +57,17 @@ public SecurityConfig setAuthenticationTypes(List authentica return this; } + @NotNull + public boolean getAllowByPass() + { + return allowByPass; + } + + public String getStatementSourceByPassRegex() + { + return statementSourceByPassRegex; + } + @Config("http-server.authentication.type") @ConfigDescription("Authentication types (supported types: CERTIFICATE, KERBEROS, PASSWORD, JWT)") public SecurityConfig setAuthenticationTypes(String types) @@ -82,4 +96,20 @@ public SecurityConfig setHttpAuthenticationPathRegex(String regex) httpAuthenticationPathRegex = regex; return this; } + + @Config("http-server.authentication.allow-by-pass") + @ConfigDescription("Allow authentication by pass") + public SecurityConfig setAllowByPass(boolean allowByPass) + { + this.allowByPass = allowByPass; + return this; + } + + @Config("http-server.statement.source.allow-by-pass-authentication") + @ConfigDescription("Regex of the statement source that allows bypass authentication") + public SecurityConfig setStatementSourceByPassRegex(String regex) + { + this.statementSourceByPassRegex = regex; + return this; + } } From 8aab394843376fef1d492fdf2b6486d4103c9a4d Mon Sep 17 00:00:00 2001 From: Hao Luo Date: Fri, 16 Nov 2018 12:38:01 -0800 Subject: [PATCH 098/129] Add maintenance coordinator module for Aurora SlaPolicy Implement the SLA requirement described in the following wiki page: http://aurora.apache.org/documentation/latest/features/sla-requirements/#coordinator-based --- .../facebook/presto/server/ServerConfig.java | 13 ++ .../presto/server/ServerMainModule.java | 4 + .../presto/maintenance/ForMaintenance.java | 31 ++++ .../MaintenanceCoordinatorModule.java | 31 ++++ .../MaintenanceCoordinatorResource.java | 159 ++++++++++++++++ .../presto/server/TestServerConfig.java | 3 + presto-tests/pom.xml | 11 ++ .../presto/tests/TestMaintenanceModule.java | 172 ++++++++++++++++++ 8 files changed, 424 insertions(+) create mode 100644 presto-main/src/main/java/com/twitter/presto/maintenance/ForMaintenance.java create mode 100644 presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorModule.java create mode 100644 presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorResource.java create mode 100644 presto-tests/src/test/java/com/twitter/presto/tests/TestMaintenanceModule.java diff --git a/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java b/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java index c6bf957cf069d..51dc0ca6eb97c 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/server/ServerConfig.java @@ -28,6 +28,7 @@ public class ServerConfig private boolean includeExceptionInResponse = true; private Duration gracePeriod = new Duration(2, MINUTES); private boolean enhancedErrorReporting = true; + private boolean maintenanceCoordinator; public boolean isCoordinator() { @@ -106,4 +107,16 @@ public ServerConfig setEnhancedErrorReporting(boolean value) this.enhancedErrorReporting = value; return this; } + + public boolean isMaintenanceCoordinator() + { + return maintenanceCoordinator; + } + + @Config("maintenance.coordinator") + public ServerConfig setMaintenanceCoordinator(boolean maintenanceCoordinator) + { + this.maintenanceCoordinator = maintenanceCoordinator; + return this; + } } diff --git a/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java b/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java index 7abba046be607..bb9fce9019f85 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java +++ b/presto-main/src/main/java/com/facebook/presto/server/ServerMainModule.java @@ -161,6 +161,7 @@ import com.google.inject.Key; import com.google.inject.Provides; import com.google.inject.Scopes; +import com.twitter.presto.maintenance.MaintenanceCoordinatorModule; import io.airlift.slice.Slice; import io.airlift.units.DataSize; import io.airlift.units.Duration; @@ -217,6 +218,9 @@ protected void setup(Binder binder) if (serverConfig.isCoordinator()) { install(new CoordinatorModule()); + if (serverConfig.isMaintenanceCoordinator()) { + install(new MaintenanceCoordinatorModule()); + } } else { install(new WorkerModule()); diff --git a/presto-main/src/main/java/com/twitter/presto/maintenance/ForMaintenance.java b/presto-main/src/main/java/com/twitter/presto/maintenance/ForMaintenance.java new file mode 100644 index 0000000000000..66aff04827f67 --- /dev/null +++ b/presto-main/src/main/java/com/twitter/presto/maintenance/ForMaintenance.java @@ -0,0 +1,31 @@ +/* + * 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 com.twitter.presto.maintenance; + +import javax.inject.Qualifier; + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Retention(RUNTIME) +@Target({FIELD, PARAMETER, METHOD}) +@Qualifier +public @interface ForMaintenance +{ +} diff --git a/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorModule.java b/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorModule.java new file mode 100644 index 0000000000000..36bf132e8fde5 --- /dev/null +++ b/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorModule.java @@ -0,0 +1,31 @@ +/* + * 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 com.twitter.presto.maintenance; + +import com.google.inject.Binder; +import com.google.inject.Module; + +import static com.facebook.airlift.http.client.HttpClientBinder.httpClientBinder; +import static com.facebook.airlift.jaxrs.JaxrsBinder.jaxrsBinder; + +public class MaintenanceCoordinatorModule + implements Module +{ + @Override + public void configure(Binder binder) + { + httpClientBinder(binder).bindHttpClient("maintenance", ForMaintenance.class); + jaxrsBinder(binder).bind(MaintenanceCoordinatorResource.class); + } +} diff --git a/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorResource.java b/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorResource.java new file mode 100644 index 0000000000000..8f8df2153162b --- /dev/null +++ b/presto-main/src/main/java/com/twitter/presto/maintenance/MaintenanceCoordinatorResource.java @@ -0,0 +1,159 @@ +/* + * 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 com.twitter.presto.maintenance; + +import com.facebook.airlift.http.client.HttpClient; +import com.facebook.airlift.http.client.Request; +import com.facebook.airlift.json.JsonCodec; +import com.facebook.airlift.log.Logger; +import com.facebook.presto.spi.NodeState; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.inject.Inject; + +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; + +import java.io.IOException; +import java.net.URI; + +import static com.facebook.airlift.http.client.HttpUriBuilder.uriBuilderFrom; +import static com.facebook.airlift.http.client.JsonBodyGenerator.jsonBodyGenerator; +import static com.facebook.airlift.http.client.JsonResponseHandler.createJsonResponseHandler; +import static com.facebook.airlift.http.client.Request.Builder.prepareGet; +import static com.facebook.airlift.http.client.Request.Builder.preparePut; +import static com.facebook.airlift.http.client.StatusResponseHandler.createStatusResponseHandler; +import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.google.common.net.MediaType.JSON_UTF_8; +import static java.util.Objects.requireNonNull; +import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE; +import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE; + +@Path("/canDrain") +public class MaintenanceCoordinatorResource +{ + private static final Logger log = Logger.get(MaintenanceCoordinatorResource.class); + private static final JsonCodec NODE_STATE_CODEC = jsonCodec(NodeState.class); + private static final ObjectMapper jsonObjectMapper = new ObjectMapper(); + private final HttpClient httpClient; + + @Inject + public MaintenanceCoordinatorResource(@ForMaintenance HttpClient httpClient) + { + this.httpClient = requireNonNull(httpClient, "httpClient is null"); + } + + @POST + public DrainResponse canDrain(String jsonString) + { + URI nodeUri = extractHostUri(jsonString); + log.info("Try draining node : " + nodeUri); + + // check the state of the target node + NodeState state = getNodeState(nodeUri); + + // if the node is active, we send the shutdown request + if (state == NodeState.ACTIVE) { + shutdownNode(nodeUri); + } + return new DrainResponse(false); + + // We should NEVER return "true" to drain request. What will happen is that the first request will request graceful shutdown in the target and the target node + // state will transfer from ACTIVE to SHUTTING_DOWN. When the shutdown is completed, getNodeState() will fail and the exception will propagate to aurora COp. + // COp always list active tasks before requesting drain, but there is a race condition which may expose a small window where the task finishes between COp list the + // active tasks and maintenance coordinator query the state of the target. COp will treat the exception as a NO, and the next retry should proceed without requesting + // maintenance coordinator. + } + + private NodeState getNodeState(URI nodeUri) + { + // synchronously send SHUTTING_DOWN request to worker node + Request request = prepareGet() + .setUri(getNodeStateUri(nodeUri)) + .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()) + .build(); + + NodeState nodeState = httpClient.execute(request, createJsonResponseHandler(NODE_STATE_CODEC)); + + log.info("Node " + nodeUri + " in state : " + nodeState); + return nodeState; + } + + private void shutdownNode(URI nodeUri) + { + log.info("Shutting down node : " + nodeUri); + Request request = preparePut() + .setUri(getNodeStateUri(nodeUri)) + .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()) + .setBodyGenerator(jsonBodyGenerator(jsonCodec(NodeState.class), NodeState.SHUTTING_DOWN)) + .build(); + + httpClient.execute(request, createStatusResponseHandler()); + } + + // extract the worker node URI from the request body + private URI extractHostUri(String message) + { + try { + JsonNode jsonRoot = jsonObjectMapper.readTree(message); + String hostName = jsonRoot + .get("taskConfig") + .get("assignedTask") + .get("slaveHost") + .asText(); + int port = jsonRoot + .get("taskConfig") + .get("assignedTask") + .get("assignedPorts") + .get("http") + .asInt(); + return URI.create("http://" + hostName + ":" + port); + } + catch (IOException e) { + String errorMessage = "Malformed Json body in drain request " + message; + log.warn(e, errorMessage); + throw new WebApplicationException( + Response.status(Response.Status.BAD_REQUEST) + .type(TEXT_PLAIN_TYPE) + .entity(errorMessage) + .build()); + } + } + + private URI getNodeStateUri(URI nodeUri) + { + return uriBuilderFrom(nodeUri).appendPath("/v1/info/state").build(); + } + + public static class DrainResponse + { + private final boolean drain; + + @JsonCreator + public DrainResponse(@JsonProperty("drain") boolean drain) + { + this.drain = drain; + } + + @JsonProperty + public boolean getDrain() + { + return drain; + } + } +} diff --git a/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java b/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java index d2cd18da833da..7056f577c6bd7 100644 --- a/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java +++ b/presto-main/src/test/java/com/facebook/presto/server/TestServerConfig.java @@ -35,6 +35,7 @@ public void testDefaults() .setDataSources(null) .setIncludeExceptionInResponse(true) .setGracePeriod(new Duration(2, MINUTES)) + .setMaintenanceCoordinator(false) .setEnhancedErrorReporting(true)); } @@ -48,6 +49,7 @@ public void testExplicitPropertyMappings() .put("http.include-exception-in-response", "false") .put("shutdown.grace-period", "5m") .put("sql.parser.enhanced-error-reporting", "false") + .put("maintenance.coordinator", "true") .build(); ServerConfig expected = new ServerConfig() @@ -56,6 +58,7 @@ public void testExplicitPropertyMappings() .setDataSources("jmx") .setIncludeExceptionInResponse(false) .setGracePeriod(new Duration(5, MINUTES)) + .setMaintenanceCoordinator(true) .setEnhancedErrorReporting(false); assertFullMapping(properties, expected); diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index df8145442e360..c914c8b662368 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -216,6 +216,11 @@ runtime + + com.facebook.airlift + http-client + + com.facebook.presto @@ -243,6 +248,12 @@ test + + javax.ws.rs + javax.ws.rs-api + compile + + diff --git a/presto-tests/src/test/java/com/twitter/presto/tests/TestMaintenanceModule.java b/presto-tests/src/test/java/com/twitter/presto/tests/TestMaintenanceModule.java new file mode 100644 index 0000000000000..91f9b224cbe54 --- /dev/null +++ b/presto-tests/src/test/java/com/twitter/presto/tests/TestMaintenanceModule.java @@ -0,0 +1,172 @@ +/* + * 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 com.twitter.presto.tests; + +import com.facebook.airlift.http.client.FullJsonResponseHandler.JsonResponse; +import com.facebook.airlift.http.client.HttpClient; +import com.facebook.airlift.http.client.Request; +import com.facebook.airlift.http.client.jetty.JettyHttpClient; +import com.facebook.airlift.json.JsonCodec; +import com.facebook.presto.Session; +import com.facebook.presto.execution.TaskManager; +import com.facebook.presto.server.testing.TestingPrestoServer; +import com.facebook.presto.spi.NodeState; +import com.facebook.presto.tests.DistributedQueryRunner; +import com.google.common.collect.ImmutableMap; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.MoreExecutors; +import com.twitter.presto.maintenance.MaintenanceCoordinatorResource.DrainResponse; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.net.URI; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.facebook.airlift.http.client.FullJsonResponseHandler.createFullJsonResponseHandler; +import static com.facebook.airlift.http.client.HttpStatus.INTERNAL_SERVER_ERROR; +import static com.facebook.airlift.http.client.HttpStatus.OK; +import static com.facebook.airlift.http.client.HttpUriBuilder.uriBuilderFrom; +import static com.facebook.airlift.http.client.JsonResponseHandler.createJsonResponseHandler; +import static com.facebook.airlift.http.client.Request.Builder.prepareGet; +import static com.facebook.airlift.http.client.Request.Builder.preparePost; +import static com.facebook.airlift.http.client.StaticBodyGenerator.createStaticBodyGenerator; +import static com.facebook.airlift.json.JsonCodec.jsonCodec; +import static com.facebook.presto.execution.QueryState.FINISHED; +import static com.facebook.presto.memory.TestMemoryManager.createQueryRunner; +import static com.facebook.presto.testing.TestingSession.testSessionBuilder; +import static com.google.common.net.MediaType.JSON_UTF_8; +import static java.lang.Thread.sleep; +import static java.nio.charset.StandardCharsets.UTF_8; +import static java.util.concurrent.Executors.newCachedThreadPool; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static javax.ws.rs.core.HttpHeaders.CONTENT_TYPE; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +public class TestMaintenanceModule +{ + private static final long SHUTDOWN_TIMEOUT_MILLIS = 240_000; + private static final JsonCodec DRAIN_RESPONSE_CODEC = JsonCodec.jsonCodec(DrainResponse.class); + private static final JsonCodec NODE_STATE_CODEC = jsonCodec(NodeState.class); + + private static final Session TINY_SESSION = testSessionBuilder() + .setCatalog("tpch") + .setSchema("tiny") + .build(); + private ListeningExecutorService executor; + private HttpClient client; + + @BeforeClass + public void setUp() + { + executor = MoreExecutors.listeningDecorator(newCachedThreadPool()); + client = new JettyHttpClient(); + } + + @AfterClass(alwaysRun = true) + public void shutdown() + { + executor.shutdownNow(); + } + + @Test(timeOut = SHUTDOWN_TIMEOUT_MILLIS) + public void testMaintenanceModule() + throws Exception + { + Map properties = ImmutableMap.builder() + .put("node-scheduler.include-coordinator", "false") + .put("shutdown.grace-period", "1s") + .put("maintenance.coordinator", "true") + .build(); + + try (DistributedQueryRunner queryRunner = createQueryRunner(TINY_SESSION, properties)) { + List> queryFutures = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + queryFutures.add(executor.submit(() -> queryRunner.execute("SELECT COUNT(*), clerk FROM orders GROUP BY clerk"))); + } + + // pick a random worker for maintenance + TestingPrestoServer worker = queryRunner.getServers() + .stream() + .filter(server -> !server.isCoordinator()) + .findAny() + .get(); + + TaskManager taskManager = worker.getTaskManager(); + // wait until tasks show up on the worker + while (taskManager.getAllTaskInfo().isEmpty()) { + MILLISECONDS.sleep(500); + } + + // try drain the worker + while (true) { + JsonResponse response = tryDrain(queryRunner.getCoordinator().getBaseUrl(), worker.getBaseUrl()); + if (response.getStatusCode() == OK.code()) { + assertTrue(response.getValue().getDrain() == false); + // check the remote node state to make sure node is shutting down + assertTrue(getNodeState(worker.getBaseUrl()) == NodeState.SHUTTING_DOWN); + } + else if (response.getStatusCode() == INTERNAL_SERVER_ERROR.code()) { + // 500 code indicates that the node is down and unreachable + break; + } + sleep(1000); + } + + // HACK: we can't simulate lifecycle of individu + Futures.allAsList(queryFutures).get(); + + queryRunner.getCoordinator().getQueryManager().getQueries().stream() + .forEach(x -> assertEquals(x.getState(), FINISHED)); + + TestingPrestoServer.TestShutdownAction shutdownAction = (TestingPrestoServer.TestShutdownAction) worker.getShutdownAction(); + shutdownAction.waitForShutdownComplete(SHUTDOWN_TIMEOUT_MILLIS); + assertTrue(shutdownAction.isWorkerShutdown()); + } + } + + private JsonResponse tryDrain(URI coordinatorUri, URI targetUri) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("{ \"taskConfig\": { \"assignedTask\": { \"slaveHost\": \"") + .append(targetUri.getHost()) + .append("\", \"assignedPorts\": { \"http\": ") + .append(targetUri.getPort()) + .append(" } } } }"); + + Request request = preparePost() + .setUri(uriBuilderFrom(coordinatorUri).appendPath("/canDrain").build()) + .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()) + .setBodyGenerator(createStaticBodyGenerator(stringBuilder.toString(), UTF_8)) + .build(); + return client.execute(request, createFullJsonResponseHandler(DRAIN_RESPONSE_CODEC)); + } + + private NodeState getNodeState(URI nodeUri) + { + URI nodeStateUri = uriBuilderFrom(nodeUri).appendPath("/v1/info/state").build(); + // synchronously send SHUTTING_DOWN request to worker node + Request request = prepareGet() + .setUri(nodeStateUri) + .setHeader(CONTENT_TYPE, JSON_UTF_8.toString()) + .build(); + + return client.execute(request, createJsonResponseHandler(NODE_STATE_CODEC)); + } +} From cc3ec8ff610279cb988d1b36aca4cde5f26c1ea7 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 30 Jan 2020 21:45:45 -0800 Subject: [PATCH 099/129] Use user name based service name instead of host based name for krb 5 --- .../presto/server/security/KerberosAuthenticator.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/KerberosAuthenticator.java b/presto-main/src/main/java/com/facebook/presto/server/security/KerberosAuthenticator.java index 1ca05becf9525..9b11230a27dff 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/KerberosAuthenticator.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/KerberosAuthenticator.java @@ -38,7 +38,6 @@ import java.security.PrivilegedAction; import java.util.Base64; import java.util.HashMap; -import java.util.Locale; import java.util.Map; import java.util.Optional; @@ -64,10 +63,7 @@ public KerberosAuthenticator(KerberosConfig config) System.setProperty("java.security.krb5.conf", config.getKerberosConfig().getAbsolutePath()); try { - String hostname = Optional.ofNullable(config.getPrincipalHostname()) - .orElseGet(() -> getLocalHost().getCanonicalHostName()) - .toLowerCase(Locale.US); - String servicePrincipal = config.getServiceName() + "/" + hostname; + String servicePrincipal = config.getServiceName(); loginContext = new LoginContext("", null, null, new Configuration() { @Override @@ -93,7 +89,7 @@ public AppConfigurationEntry[] getAppConfigurationEntry(String name) loginContext.login(); serverCredential = doAs(loginContext.getSubject(), () -> gssManager.createCredential( - gssManager.createName(config.getServiceName() + "@" + hostname, GSSName.NT_HOSTBASED_SERVICE), + gssManager.createName(config.getServiceName(), GSSName.NT_USER_NAME), INDEFINITE_LIFETIME, new Oid[] { new Oid("1.2.840.113554.1.2.2"), // kerberos 5 From 5edbe273cb7e47a33602dba77dafe70551e6f003 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 31 Jan 2020 00:45:53 -0800 Subject: [PATCH 100/129] fix duplicatd bind of HiveCluster --- .../presto/hive/metastore/thrift/ThriftMetastoreModule.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java index 61eca23e6e43f..5bc5ee169038e 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/hive/metastore/thrift/ThriftMetastoreModule.java @@ -22,6 +22,7 @@ import com.facebook.presto.hive.metastore.RecordingHiveMetastore; import com.facebook.presto.twitter.hive.MetastoreStaticClusterModule; import com.facebook.presto.twitter.hive.MetastoreZkDiscoveryBasedModule; +import com.facebook.presto.twitter.hive.PooledHiveMetastoreClientFactory; import com.facebook.presto.twitter.hive.ZookeeperServersetMetastoreConfig; import com.google.inject.Binder; import com.google.inject.Scopes; @@ -45,7 +46,7 @@ public ThriftMetastoreModule(String connectorId) protected void setup(Binder binder) { binder.bind(HiveMetastoreClientFactory.class).in(Scopes.SINGLETON); - binder.bind(HiveCluster.class).to(StaticHiveCluster.class).in(Scopes.SINGLETON); + binder.bind(PooledHiveMetastoreClientFactory.class).in(Scopes.SINGLETON); bindMetastoreClusterModule(); binder.bind(HiveMetastore.class).to(ThriftHiveMetastore.class).in(Scopes.SINGLETON); From 1fd6458fccbb256b243a7dbc3478823144608800 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 14 Feb 2020 13:50:40 -0800 Subject: [PATCH 101/129] fix bugs on by-pass authentication --- .../server/security/AuthenticationFilter.java | 16 ++++++++++++++-- .../presto/server/security/SecurityConfig.java | 2 +- .../src/main/provisio/presto.xml | 6 ++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java index b9206ad703fb8..89827260f8abc 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.server.security; +import com.facebook.airlift.log.Logger; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; @@ -35,6 +36,7 @@ import java.util.Set; import static com.facebook.presto.client.PrestoHeaders.PRESTO_SOURCE; +import static com.facebook.presto.client.PrestoHeaders.PRESTO_USER; import static com.google.common.io.ByteStreams.copy; import static com.google.common.io.ByteStreams.nullOutputStream; import static com.google.common.net.HttpHeaders.WWW_AUTHENTICATE; @@ -44,6 +46,11 @@ public class AuthenticationFilter implements Filter { + private static final Logger LOG = Logger.get(AuthenticationFilter.class); + + //TODO: remove this field once we enforced authentication 100% + private static final String statementGetPathRegex = "\\/v1\\/statement\\/\\d{8}_\\d{6}_\\d{5}_\\w{5}\\/\\d+"; + private final List authenticators; private final String httpAuthenticationPathRegex; private final boolean allowByPass; @@ -99,11 +106,15 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo return; } + //authentication bypassed if (allowByPass) { - if (statementSourceByPassRegex != null + if (request.getMethod().equals("GET") && request.getPathInfo().matches(statementGetPathRegex) || + (statementSourceByPassRegex != null && request.getHeader(PRESTO_SOURCE) != null - && request.getHeader(PRESTO_SOURCE).matches(statementSourceByPassRegex)) { + && request.getHeader(PRESTO_SOURCE).matches(statementSourceByPassRegex))) { nextFilter.doFilter(request, response); + LOG.debug("Authentication by passed from source: %s user: %s", request.getHeader(PRESTO_SOURCE), request.getHeader(PRESTO_USER)); + return; } } @@ -117,6 +128,7 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo if (messages.isEmpty()) { messages.add("Unauthorized"); } + LOG.debug("Auth failed %s %s %s %s", request.getHeader(PRESTO_SOURCE), request.getHeader(PRESTO_USER), request.getPathInfo(), request.getQueryString()); response.sendError(SC_UNAUTHORIZED, Joiner.on(" | ").join(messages)); } diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java index b14e8a448c4b6..404ddc49fbe31 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/SecurityConfig.java @@ -105,7 +105,7 @@ public SecurityConfig setAllowByPass(boolean allowByPass) return this; } - @Config("http-server.statement.source.allow-by-pass-authentication") + @Config("http-server.statement.source.allow-by-pass-regex") @ConfigDescription("Regex of the statement source that allows bypass authentication") public SecurityConfig setStatementSourceByPassRegex(String regex) { diff --git a/presto-twitter-server/src/main/provisio/presto.xml b/presto-twitter-server/src/main/provisio/presto.xml index 7a448a5440486..24b6d23a53ce4 100644 --- a/presto-twitter-server/src/main/provisio/presto.xml +++ b/presto-twitter-server/src/main/provisio/presto.xml @@ -50,6 +50,12 @@ + + + + + + From a2006df65384902c2d6e09213db5afe11acd36d1 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 21 Feb 2020 22:07:43 -0800 Subject: [PATCH 102/129] Fix the null value bug for the columns with the name of sql keywords ` --- .../com/facebook/presto/hive/parquet/ParquetPageSource.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java index 5ef90bbf2b0bb..c9f1bdb1b9e24 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java @@ -39,7 +39,7 @@ import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; import static com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetType; -import static com.facebook.presto.parquet.ParquetTypeUtils.lookupColumnByName; +import static com.facebook.presto.hive.parquet.ParquetTypeUtils.findColumnIObyName; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; import static org.apache.parquet.io.ColumnIOConverter.constructField; @@ -83,7 +83,7 @@ public ParquetPageSource( if (getParquetType(type, fileSchema, useParquetColumnNames, column).isPresent()) { String columnName = useParquetColumnNames ? name : fileSchema.getFields().get(column.getHiveColumnIndex()).getName(); - fieldsBuilder.add(constructField(type, lookupColumnByName(messageColumnIO, columnName))); + fieldsBuilder.add(constructField(type, findColumnIObyName(messageColumnIO, columnName))); } else { fieldsBuilder.add(Optional.empty()); From cbf81c1f902a1e7613b6a08533dc2fe31c3b64f6 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 21 Feb 2020 22:08:15 -0800 Subject: [PATCH 103/129] fix CTAS failures when using viewfs --- .../java/com/facebook/presto/hive/HiveWriteUtils.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java index d94960660c257..348ee470d64de 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveWriteUtils.java @@ -420,7 +420,13 @@ public static Path createTemporaryPath(ConnectorSession session, HdfsContext con // use relative temporary directory on ViewFS if (isViewFileSystem(context, hdfsEnvironment, targetPath)) { - temporaryPrefix = ".hive-staging"; + if (pathExists(context, hdfsEnvironment, targetPath)) { + temporaryPrefix = ".hive-staging"; + } + else { + //use the temporary folder in parent when target path does not exist + temporaryPrefix = "../.hive-staging"; + } } // create a temporary directory on the same filesystem From a2a9958f4c0c4a6ad37abec792bdd96b4d98a617 Mon Sep 17 00:00:00 2001 From: Yaliang Wang Date: Thu, 25 Jan 2018 19:29:19 -0800 Subject: [PATCH 104/129] Ignore not found files --- .../facebook/presto/hive/util/HiveFileIterator.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/HiveFileIterator.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/HiveFileIterator.java index 64cf4c0ab40a6..e6f8bd931b5ca 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/HiveFileIterator.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/HiveFileIterator.java @@ -91,7 +91,15 @@ protected HiveFileInfo computeNext() if (paths.isEmpty()) { return endOfData(); } - remoteIterator = getLocatedFileStatusRemoteIterator(paths.removeFirst(), pathFilter); + + try { + remoteIterator = getLocatedFileStatusRemoteIterator(paths.removeFirst(), pathFilter); + } + catch (PrestoException e) { + if (!e.getErrorCode().equals(HIVE_FILE_NOT_FOUND.toErrorCode())) { + throw e; + } + } } } From aead0986c147022d8fd59241415929fb11d3f607 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Sat, 22 Feb 2020 21:26:05 -0800 Subject: [PATCH 105/129] Fix no codec issue for lzo index files. We skip the index files. --- .../facebook/presto/twitter/hive/thrift/LzoThriftUtil.java | 5 +++++ .../facebook/presto/hive/util/InternalHiveSplitFactory.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java index 7de550eeaa86e..61f88aeb074a2 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/LzoThriftUtil.java @@ -50,4 +50,9 @@ public static boolean isLzopCompressedFile(Path filePath) { return LZOP_DEFAULT_SUFFIX_FILTER.accept(filePath); } + + public static boolean isLzopIndexFile(Path filePath) + { + return LZOP_INDEX_DEFAULT_SUFFIX_FILTER.accept(filePath); + } } diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java index 438c55770322d..a139a623cdaa9 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/util/InternalHiveSplitFactory.java @@ -39,6 +39,7 @@ import static com.facebook.presto.hive.HiveUtil.isSplittable; import static com.facebook.presto.spi.schedule.NodeSelectionStrategy.HARD_AFFINITY; +import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.isLzopIndexFile; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.collect.ImmutableList.toImmutableList; import static io.airlift.slice.Slices.utf8Slice; @@ -228,6 +229,10 @@ private static List getHostAddresses(BlockLocation blockLocation) private static boolean pathMatchesPredicate(Optional pathDomain, String path) { + if (isLzopIndexFile(new Path(path))) { + return false; + } + if (!pathDomain.isPresent()) { return true; } From e3502738d2e3feaa7b917cd20ddfa8e6b96928a3 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 23 Jan 2020 22:49:27 -0800 Subject: [PATCH 106/129] Add dependency of javax.annotation into presto-catch's pom to fix build failure on java 11 --- presto-cache/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/presto-cache/pom.xml b/presto-cache/pom.xml index 188d4f29f3793..c794a7cbb8eef 100644 --- a/presto-cache/pom.xml +++ b/presto-cache/pom.xml @@ -56,6 +56,11 @@ javax.inject + + javax.annotation + javax.annotation-api + + com.google.code.findbugs jsr305 From 2b6c0d17e397c3810e5b3f290aaee93e5c0246d1 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 24 Jan 2020 00:16:02 -0800 Subject: [PATCH 107/129] Fix incompatible types error on jdk 9 and 11 --- .../presto/transaction/InMemoryTransactionManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/transaction/InMemoryTransactionManager.java b/presto-main/src/main/java/com/facebook/presto/transaction/InMemoryTransactionManager.java index 4106f9b39aabf..0bf1af1aec7cd 100644 --- a/presto-main/src/main/java/com/facebook/presto/transaction/InMemoryTransactionManager.java +++ b/presto-main/src/main/java/com/facebook/presto/transaction/InMemoryTransactionManager.java @@ -584,12 +584,13 @@ public synchronized ListenableFuture asyncAbort() private synchronized ListenableFuture abortInternal() { // the callbacks in statement performed on another thread so are safe - return nonCancellationPropagating(Futures.allAsList(Stream.concat( + List> abortFutures = Stream.concat( functionNamespaceTransactions.values().stream() .map(transactionMetadata -> finishingExecutor.submit(() -> safeAbort(transactionMetadata))), connectorIdToMetadata.values().stream() .map(connection -> finishingExecutor.submit(() -> safeAbort(connection)))) - .collect(toList()))); + .collect(toList()); + return nonCancellationPropagating(Futures.allAsList(abortFutures)); } private static void safeAbort(ConnectorTransactionMetadata connection) From cbd4ea9de4ecfac6813a7c85850055ebd8442ded Mon Sep 17 00:00:00 2001 From: Beinan Date: Fri, 21 Feb 2020 21:57:41 -0800 Subject: [PATCH 108/129] Add a counter stats for namenode ops (#240) --- .../java/com/facebook/presto/hive/NamenodeStats.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/NamenodeStats.java b/presto-hive/src/main/java/com/facebook/presto/hive/NamenodeStats.java index 96ef6acc7cc75..1d45727797494 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/NamenodeStats.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/NamenodeStats.java @@ -45,9 +45,11 @@ public static class CallStats private final TimeStat time = new TimeStat(TimeUnit.MILLISECONDS); private final CounterStat totalFailures = new CounterStat(); private final CounterStat ioExceptions = new CounterStat(); + private final CounterStat totalCall = new CounterStat(); public TimeStat.BlockTimer time() { + totalCall.update(1); //update total call counter when the timer stats starts return time.time(); } @@ -79,5 +81,12 @@ public TimeStat getTime() { return time; } + + @Managed + @Nested + public CounterStat getTotalCall() + { + return totalCall; + } } } From a6d9f6b376b70c5ff1da4e4786b483aaf9b0b880 Mon Sep 17 00:00:00 2001 From: Yaliang Wang Date: Wed, 13 Dec 2017 15:46:13 -0800 Subject: [PATCH 109/129] Handle empty structs by inserting an unknown field --- .../java/com/facebook/presto/common/type/TypeSignature.java | 2 +- .../com/facebook/presto/common/type/TestTypeSignature.java | 6 +++--- .../java/com/facebook/presto/type/RowParametricType.java | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java index 9c2e4156a4240..11ac9d5413efc 100644 --- a/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java +++ b/presto-common/src/main/java/com/facebook/presto/common/type/TypeSignature.java @@ -47,7 +47,7 @@ public class TypeSignature static { BASE_NAME_ALIAS_TO_CANONICAL.put("int", StandardTypes.INTEGER); - + BASE_NAME_ALIAS_TO_CANONICAL.put("", "unknown"); SIMPLE_TYPE_WITH_SPACES.add(StandardTypes.TIME_WITH_TIME_ZONE); SIMPLE_TYPE_WITH_SPACES.add(StandardTypes.TIMESTAMP_WITH_TIME_ZONE); SIMPLE_TYPE_WITH_SPACES.add(StandardTypes.INTERVAL_DAY_TO_SECOND); diff --git a/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java index d9302480d3884..d708b0443457a 100644 --- a/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java +++ b/presto-common/src/test/java/com/facebook/presto/common/type/TestTypeSignature.java @@ -248,9 +248,9 @@ public void parseSignature() "map", ImmutableList.of("bigint", "map(bigint,map(varchar,bigint))")); - assertSignatureFail("blah()"); - assertSignatureFail("array()"); - assertSignatureFail("map()"); + assertSignature("blah()", "blah", ImmutableList.of("unknown"), "blah(unknown)"); + assertSignature("array()", "array", ImmutableList.of("unknown"), "array(unknown)"); + assertSignature("map()", "map", ImmutableList.of("unknown"), "map(unknown)"); assertSignatureFail("x", ImmutableSet.of("x")); // ensure this is not treated as a row type diff --git a/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java b/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java index 3a3768ee03f50..affdb1f40ded6 100644 --- a/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java +++ b/presto-main/src/main/java/com/facebook/presto/type/RowParametricType.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.type; +import com.facebook.presto.common.type.NamedType; import com.facebook.presto.common.type.NamedTypeSignature; import com.facebook.presto.common.type.ParameterKind; import com.facebook.presto.common.type.ParametricType; @@ -26,6 +27,7 @@ import com.facebook.presto.common.type.TypeSignatureParameter; import java.util.List; +import java.util.Optional; import static com.google.common.base.Preconditions.checkArgument; import static java.util.stream.Collectors.toList; @@ -48,7 +50,9 @@ public String getName() @Override public Type createType(TypeManager typeManager, List parameters) { - checkArgument(!parameters.isEmpty(), "Row type must have at least one parameter"); + if (parameters.isEmpty()) { + parameters.add(TypeParameter.of(new NamedType(Optional.of(new RowFieldName(UnknownType.NAME, false)), UnknownType.UNKNOWN))); + } checkArgument( parameters.stream().allMatch(parameter -> parameter.getKind() == ParameterKind.NAMED_TYPE), "Expected only named types as a parameters, got %s", From b596173225a86db67d42fbcc1dc937e51d6d0668 Mon Sep 17 00:00:00 2001 From: Beinan Date: Wed, 25 Mar 2020 23:15:36 -0700 Subject: [PATCH 110/129] Compare type by (name,type) pair rather than (index,type) pair during Parquet schema mismatch checking (#245) * Compare type by (name,type) pair rather than (index,type) pair during Parquet schema mismatch checking * add unit test for parquet schema mismatch checker --- .../facebook/presto/hive/parquet/ParquetPageSourceFactory.java | 3 +++ .../java/com/facebook/presto/hive/TestHiveFileFormats.java | 1 + 2 files changed, 4 insertions(+) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java index fee834f6d97ce..631b66541c509 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSourceFactory.java @@ -326,6 +326,9 @@ private static boolean checkSchemaMatch(org.apache.parquet.schema.Type parquetTy org.apache.parquet.schema.Type parquetFieldType = groupType.getFields().get(i); String fieldName = parquetFieldType.getName().toLowerCase(Locale.ENGLISH); Type prestoFieldType = prestoFieldMap.get(fieldName); + if (prestoFieldType == null) { + prestoFieldType = prestoFieldMap.get(fieldName + "_"); + } if (prestoFieldType != null && !checkSchemaMatch(parquetFieldType, prestoFieldType)) { return false; } diff --git a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java index 32228e409a4f8..c51daea96d111 100644 --- a/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java +++ b/presto-hive/src/test/java/com/facebook/presto/hive/TestHiveFileFormats.java @@ -793,6 +793,7 @@ public void testSchemaMismatchOnNestedStruct() ImmutableMap.of("test", Arrays.asList(5.0, 1)), mapBlockOf(createUnboundedVarcharType(), RowType.anonymous(ImmutableList.of(DOUBLE, INTEGER)), "test", rowBlockOf(ImmutableList.of(DOUBLE, INTEGER), 5.0, 1L))); + assertThatFileFormat(PARQUET) .withWriteColumns(ImmutableList.of(writeColumn)) .withReadColumns(ImmutableList.of(readColumn)) From ed07cfd9e16aa7dbc6c36a8d7a6d5a1c160538d9 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Wed, 15 Apr 2020 01:51:40 -0700 Subject: [PATCH 111/129] rebase to 234, fix complie error and refactoring --- .../presto/twitter/hive/thrift/ThriftGeneralInputFormat.java | 2 +- .../com/facebook/presto/hive/parquet/ParquetPageSource.java | 2 +- .../presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java | 2 +- .../presto/twitter/hive/thrift/ThriftGeneralDeserializer.java | 4 ++-- .../twitter/hive/thrift/ThriftHiveRecordCursorProvider.java | 2 +- .../main/java/org/apache/parquet/io/ColumnIOConverter.java | 3 +-- presto-twitter-functions/pom.xml | 2 +- presto-twitter-server-rpm/pom.xml | 4 ++-- presto-twitter-server/pom.xml | 2 +- twitter-eventlistener-plugin/pom.xml | 2 +- 10 files changed, 12 insertions(+), 13 deletions(-) diff --git a/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java index ba8373544b906..791430c09d5c9 100644 --- a/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java +++ b/presto-hive-metastore/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralInputFormat.java @@ -29,7 +29,7 @@ import java.io.IOException; -import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.getLzopIndexPath; import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.isLzopCompressedFile; diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java index c9f1bdb1b9e24..e1b03d2d91d52 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/parquet/ParquetPageSource.java @@ -39,7 +39,7 @@ import static com.facebook.presto.hive.HiveErrorCode.HIVE_BAD_DATA; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; import static com.facebook.presto.hive.parquet.ParquetPageSourceFactory.getParquetType; -import static com.facebook.presto.hive.parquet.ParquetTypeUtils.findColumnIObyName; +import static com.facebook.presto.parquet.ParquetTypeUtils.findColumnIObyName; import static com.google.common.base.Preconditions.checkState; import static java.util.Objects.requireNonNull; import static org.apache.parquet.io.ColumnIOConverter.constructField; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java index 5842c3e2fbf06..97d53e5a502a6 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/HiveThriftFieldIdResolver.java @@ -18,7 +18,7 @@ import java.util.HashMap; import java.util.Map; -import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static com.google.common.base.MoreObjects.toStringHelper; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java index 372990ed14047..b63abfad1dc58 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftGeneralDeserializer.java @@ -20,8 +20,8 @@ import java.util.Properties; -import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; -import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_UNSUPPORTED_FORMAT; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_UNSUPPORTED_FORMAT; import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static org.apache.hadoop.hive.serde.Constants.SERIALIZATION_CLASS; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java index c1b027e80da07..fcde2e799ebea 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java @@ -37,10 +37,10 @@ import java.util.Properties; import java.util.Set; +import static com.facebook.presto.hive.HiveErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.HiveStorageFormat.THRIFTBINARY; import static com.facebook.presto.hive.HiveUtil.createRecordReader; import static com.facebook.presto.hive.HiveUtil.getDeserializerClassName; -import static com.facebook.presto.hive.MetastoreErrorCode.HIVE_INVALID_METADATA; import static com.facebook.presto.hive.metastore.MetastoreUtil.checkCondition; import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.getLzopIndexPath; import static com.facebook.presto.twitter.hive.thrift.LzoThriftUtil.isLzopCompressedFile; diff --git a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java index 57eafc05bdcbe..a12e3a971ef9f 100644 --- a/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java +++ b/presto-parquet/src/main/java/org/apache/parquet/io/ColumnIOConverter.java @@ -30,10 +30,9 @@ import static com.facebook.presto.common.type.StandardTypes.ARRAY; import static com.facebook.presto.common.type.StandardTypes.MAP; import static com.facebook.presto.common.type.StandardTypes.ROW; +import static com.facebook.presto.parquet.ParquetTypeUtils.findColumnIObyName; import static com.facebook.presto.parquet.ParquetTypeUtils.getArrayElementColumn; import static com.facebook.presto.parquet.ParquetTypeUtils.getMapKeyValueColumn; -import static com.facebook.presto.parquet.ParquetTypeUtils.findColumnIObyName; - import static org.apache.parquet.schema.Type.Repetition.OPTIONAL; /** diff --git a/presto-twitter-functions/pom.xml b/presto-twitter-functions/pom.xml index 1f01ea6fc8aca..3eee05e20b8e3 100644 --- a/presto-twitter-functions/pom.xml +++ b/presto-twitter-functions/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.230 + 0.235-SNAPSHOT presto-twitter-functions diff --git a/presto-twitter-server-rpm/pom.xml b/presto-twitter-server-rpm/pom.xml index d2fb7f78032e9..76ca66802791b 100644 --- a/presto-twitter-server-rpm/pom.xml +++ b/presto-twitter-server-rpm/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.230 + 0.235-SNAPSHOT presto-twitter-server-rpm @@ -27,7 +27,7 @@ com.facebook.presto presto-twitter-server - 0.230 + 0.235-SNAPSHOT tar.gz runtime diff --git a/presto-twitter-server/pom.xml b/presto-twitter-server/pom.xml index 45388c81bce6c..d1cf21457b5df 100644 --- a/presto-twitter-server/pom.xml +++ b/presto-twitter-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.230 + 0.235-SNAPSHOT presto-twitter-server diff --git a/twitter-eventlistener-plugin/pom.xml b/twitter-eventlistener-plugin/pom.xml index fb077947fe987..0bc4bc3e356a5 100644 --- a/twitter-eventlistener-plugin/pom.xml +++ b/twitter-eventlistener-plugin/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.230 + 0.235-SNAPSHOT 4.0.0 From 4de509cacad9f993f6deeee82711ce2541c1a3a9 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 21 Apr 2020 12:58:47 -0700 Subject: [PATCH 112/129] add druid module to presto-twitter-server --- presto-twitter-server/src/main/provisio/presto.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/presto-twitter-server/src/main/provisio/presto.xml b/presto-twitter-server/src/main/provisio/presto.xml index 24b6d23a53ce4..f11ce32562f37 100644 --- a/presto-twitter-server/src/main/provisio/presto.xml +++ b/presto-twitter-server/src/main/provisio/presto.xml @@ -56,6 +56,12 @@ + + + + + + From 4bcd21e833ecfabb5582dc10bd5a66ea6c416936 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 21 Apr 2020 13:26:25 -0700 Subject: [PATCH 113/129] fix by-pass authentication for presto 0.234+ --- .../presto/server/security/AuthenticationFilter.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java index 89827260f8abc..c872ceb5c67b8 100644 --- a/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java +++ b/presto-main/src/main/java/com/facebook/presto/server/security/AuthenticationFilter.java @@ -48,9 +48,6 @@ public class AuthenticationFilter { private static final Logger LOG = Logger.get(AuthenticationFilter.class); - //TODO: remove this field once we enforced authentication 100% - private static final String statementGetPathRegex = "\\/v1\\/statement\\/\\d{8}_\\d{6}_\\d{5}_\\w{5}\\/\\d+"; - private final List authenticators; private final String httpAuthenticationPathRegex; private final boolean allowByPass; @@ -108,7 +105,8 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo //authentication bypassed if (allowByPass) { - if (request.getMethod().equals("GET") && request.getPathInfo().matches(statementGetPathRegex) || + //TODO: remove this field once we enforced authentication 100% + if (request.getMethod().equals("GET") && request.getPathInfo().startsWith("/v1/statement") || (statementSourceByPassRegex != null && request.getHeader(PRESTO_SOURCE) != null && request.getHeader(PRESTO_SOURCE).matches(statementSourceByPassRegex))) { From cbf2f5607df7dce29681a358db94fc1f4cf4b137 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 5 May 2020 11:16:39 -0700 Subject: [PATCH 114/129] Add configuration for hdfs config resources --- .../facebook/presto/druid/DruidConfig.java | 24 +++++++++++++++++++ .../presto/druid/DruidPageSourceProvider.java | 21 ++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java index 6958018711e71..ec1872d3649ff 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java @@ -15,15 +15,20 @@ import com.facebook.airlift.configuration.Config; import com.facebook.airlift.configuration.ConfigDescription; +import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableList; import javax.validation.constraints.NotNull; +import java.util.List; + public class DruidConfig { private String coordinatorUrl; private String brokerUrl; private String schema = "druid"; private boolean pushdown; + private List hadoopResourceConfigFiles = ImmutableList.of(); @NotNull public String getDruidCoordinatorUrl() @@ -79,4 +84,23 @@ public DruidConfig setComputePushdownEnabled(boolean pushdown) this.pushdown = pushdown; return this; } + + @NotNull + public List getHadoopResourceConfigFiles() + { + return hadoopResourceConfigFiles; + } + + @Config("druid.hadoop.config.resources") + public DruidConfig setHadoopResourceConfigFiles(String files) + { + this.hadoopResourceConfigFiles = Splitter.on(',').trimResults().omitEmptyStrings().splitToList(files); + return this; + } + + public DruidConfig setHadoopResourceConfigFiles(List files) + { + this.hadoopResourceConfigFiles = ImmutableList.copyOf(files); + return this; + } } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java index adf93b25f6e52..3e9507c9ae835 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java @@ -39,6 +39,7 @@ import java.io.IOException; import java.util.List; +import java.util.Map; import static com.facebook.presto.druid.DruidErrorCode.DRUID_DEEP_STORAGE_ERROR; import static com.facebook.presto.druid.DruidSplit.SplitType.BROKER; @@ -48,11 +49,13 @@ public class DruidPageSourceProvider implements ConnectorPageSourceProvider { private final DruidClient druidClient; + private final Configuration hadoopConfiguration; @Inject - public DruidPageSourceProvider(DruidClient druidClient) + public DruidPageSourceProvider(DruidClient druidClient, DruidConfig config) { this.druidClient = requireNonNull(druidClient, "druid client is null"); + this.hadoopConfiguration = readConfiguration(config.getHadoopResourceConfigFiles()); } @Override @@ -73,7 +76,7 @@ public ConnectorPageSource createPageSource( DruidSegmentInfo segmentInfo = druidSplit.getSegmentInfo().get(); try { Path hdfsPath = new Path(segmentInfo.getDeepStoragePath()); - FileSystem fileSystem = hdfsPath.getFileSystem(new Configuration()); + FileSystem fileSystem = hdfsPath.getFileSystem(hadoopConfiguration); long fileSize = fileSystem.getFileStatus(hdfsPath).getLen(); FSDataInputStream inputStream = fileSystem.open(hdfsPath); DataInputSourceId dataInputSourceId = new DataInputSourceId(hdfsPath.toString()); @@ -91,4 +94,18 @@ public ConnectorPageSource createPageSource( throw new PrestoException(DRUID_DEEP_STORAGE_ERROR, e); } } + + private static Configuration readConfiguration(List resourcePaths) + { + Configuration configuration = new Configuration(false); + + for (String resourcePath : resourcePaths) { + Configuration resourceProperties = new Configuration(false); + resourceProperties.addResource(new Path(resourcePath)); + for (Map.Entry entry : resourceProperties) { + configuration.set(entry.getKey(), entry.getValue()); + } + } + return configuration; + } } From 572fa2a7aa1bb97d2693148c8197aa38b172c7cb Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:41:12 -0700 Subject: [PATCH 115/129] Fix json type deserialization issue on DruidSegmentInfo --- .../druid/metadata/DruidSegmentInfo.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java b/presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java index a12fd35de1c9d..e18ab7f8d80d0 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/metadata/DruidSegmentInfo.java @@ -16,7 +16,6 @@ import com.facebook.presto.spi.PrestoException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import org.joda.time.Interval; import javax.annotation.Nullable; @@ -35,10 +34,9 @@ public class DruidSegmentInfo private static final String SEGMENT_PATH_KEY = "path"; private final String dataSource; - private final Interval interval; private final String version; private final Optional> loadSpecification; - private final Optional> shardSpecification; + private final Optional> shardSpecification; private final Integer binaryVersion; private final long size; @@ -57,15 +55,13 @@ public enum DeepStorageType @JsonCreator public DruidSegmentInfo( @JsonProperty("dataSource") String dataSource, - @JsonProperty("interval") Interval interval, @JsonProperty("version") String version, @JsonProperty("loadSpec") Optional> loadSpecification, - @JsonProperty("shardSpec") @Nullable Optional> shardSpecification, + @JsonProperty("shardSpec") @Nullable Optional> shardSpecification, @JsonProperty("binaryVersion") Integer binaryVersion, @JsonProperty("size") long size) { this.dataSource = requireNonNull(dataSource, "dataSource is null"); - this.interval = requireNonNull(interval, "interval is null"); this.version = requireNonNull(version, "version is null"); this.loadSpecification = requireNonNull(loadSpecification, "loadSpecification is null"); this.shardSpecification = requireNonNull(shardSpecification, "shardSpecification is null"); @@ -79,12 +75,6 @@ public String getDataSource() return dataSource; } - @JsonProperty - public Interval getInterval() - { - return interval; - } - @JsonProperty public String getVersion() { @@ -98,7 +88,7 @@ public Optional> getLoadSpecification() } @JsonProperty - public Optional> getShardSpecification() + public Optional> getShardSpecification() { return shardSpecification; } @@ -132,7 +122,7 @@ public String getDeepStoragePath() @Override public int hashCode() { - return Objects.hash(dataSource, interval, version, loadSpecification, shardSpecification, binaryVersion, size); + return Objects.hash(dataSource, version, loadSpecification, shardSpecification, binaryVersion, size); } @Override @@ -147,7 +137,6 @@ public boolean equals(Object obj) DruidSegmentInfo that = (DruidSegmentInfo) obj; return Objects.equals(this.dataSource, that.dataSource) && - Objects.equals(this.interval, that.interval) && Objects.equals(this.version, that.version) && Objects.equals(this.loadSpecification, that.loadSpecification) && Objects.equals(this.shardSpecification, that.shardSpecification) && @@ -160,7 +149,6 @@ public String toString() { return toStringHelper(this) .add("dataSource", dataSource) - .add("interval", interval) .add("version", version) .add("loadSpecification", loadSpecification) .add("shardSpecification", shardSpecification) From b3d309aefe23f6d1b0e18fd3e79c730eb4054d6c Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:44:53 -0700 Subject: [PATCH 116/129] Add dependency of fastutil for Druid HDFS file parsing --- presto-druid/pom.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml index 85e211d28b05a..58fd783994555 100644 --- a/presto-druid/pom.xml +++ b/presto-druid/pom.xml @@ -167,6 +167,12 @@ true + + it.unimi.dsi + fastutil + runtime + + javax.inject javax.inject @@ -189,12 +195,12 @@ com.fasterxml.jackson.core - jackson-databind + jackson-core com.fasterxml.jackson.core - jackson-core + jackson-databind From fe06bc643065ad5399c8f467c79160d9e7a05f81 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:48:08 -0700 Subject: [PATCH 117/129] Support query columns with 'Other' type --- .../src/main/java/com/facebook/presto/druid/DruidMetadata.java | 1 + .../com/facebook/presto/druid/column/StringColumnReader.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java index 6bfc9a00a7d76..99b63366005ca 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidMetadata.java @@ -147,6 +147,7 @@ private static Type getType(String type) { switch (type.toUpperCase()) { case "VARCHAR": + case "OTHER": return VARCHAR; case "BIGINT": return BIGINT; diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java b/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java index a6e5afd300e2a..2ee6ef4915000 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/column/StringColumnReader.java @@ -39,7 +39,7 @@ public Block readBlock(Type type, int batchSize) checkArgument(type == VARCHAR); BlockBuilder builder = type.createBlockBuilder(null, batchSize); for (int i = 0; i < batchSize; i++) { - String value = valueSelector.getObject(); + String value = String.valueOf(valueSelector.getObject()); if (value != null) { type.writeSlice(builder, Slices.utf8Slice(value)); } From 8841530ff73dbd0ebb58be341740d8c198e93d4a Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:51:09 -0700 Subject: [PATCH 118/129] Escaping special characters in druid table name and column name. --- .../presto/druid/DruidQueryGeneratorContext.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java index 9b4031b899728..a5a252b5c2b45 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java @@ -244,14 +244,14 @@ public DruidQueryGenerator.GeneratedDql toQuery() } String expressions = selections.entrySet().stream() - .map(s -> s.getValue().getDefinition()) + .map(s -> s.getValue().getEscapedDefinition()) .collect(Collectors.joining(", ")); if (expressions.isEmpty()) { throw new PrestoException(DRUID_QUERY_GENERATOR_FAILURE, "Empty Druid query"); } String tableName = from.orElseThrow(() -> new PrestoException(DRUID_QUERY_GENERATOR_FAILURE, "Table name missing in Druid query")); - String query = "SELECT " + expressions + " FROM " + tableName; + String query = "SELECT " + expressions + " FROM \"" + tableName + "\""; boolean pushdown = false; if (filter.isPresent()) { // this is hack!!!. Ideally we want to clone the scan pipeline and create/update the filter in the scan pipeline to contain this filter and @@ -262,7 +262,7 @@ public DruidQueryGenerator.GeneratedDql toQuery() if (!groupByColumns.isEmpty()) { String groupByExpression = groupByColumns.stream() - .map(expression -> selections.containsKey(expression) ? selections.get(expression).getDefinition() : expression.getName()) + .map(expression -> selections.containsKey(expression) ? selections.get(expression).getEscapedDefinition() : expression.getName()) .collect(Collectors.joining(", ")); query = query + " GROUP BY " + groupByExpression; pushdown = true; @@ -332,6 +332,14 @@ public String getDefinition() return definition; } + public String getEscapedDefinition() + { + if (origin == Origin.TABLE_COLUMN) { + return "\"" + definition + "\""; + } + return definition; + } + public Origin getOrigin() { return origin; From 63b111a798dabaf82d5ef3db455a3eb13eef7ae5 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:53:23 -0700 Subject: [PATCH 119/129] Add the problematical file path to the presto exception message --- .../java/com/facebook/presto/druid/DruidPageSourceProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java index 3e9507c9ae835..bb13b760af927 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidPageSourceProvider.java @@ -91,7 +91,7 @@ public ConnectorPageSource createPageSource( new DruidSegmentReader(segmentIndexSource, columns)); } catch (IOException e) { - throw new PrestoException(DRUID_DEEP_STORAGE_ERROR, e); + throw new PrestoException(DRUID_DEEP_STORAGE_ERROR, "Failed to create page source on " + segmentInfo.getDeepStoragePath(), e); } } From ba6cef4715ef105545dfcb5b589c4d9c32b5d2e6 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 12:57:25 -0700 Subject: [PATCH 120/129] Add presto-druid into presto-product-test config properties --- presto-product-tests/conf/presto/etc/config.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/presto-product-tests/conf/presto/etc/config.properties b/presto-product-tests/conf/presto/etc/config.properties index 9bd2825acff78..c86dcbe220dfc 100644 --- a/presto-product-tests/conf/presto/etc/config.properties +++ b/presto-product-tests/conf/presto/etc/config.properties @@ -33,6 +33,7 @@ plugin.bundles=\ ../../../presto-tpch/pom.xml,\ ../../../presto-blackhole/pom.xml,\ ../../../presto-cassandra/pom.xml,\ + ../../../presto-druid/pom.xml,\ ../../../presto-mysql/pom.xml,\ ../../../presto-postgresql/pom.xml,\ ../../../presto-sqlserver/pom.xml,\ From e27d441c1ec9e7be755f0ac3cb7fc4d3a18a740c Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 21:08:30 -0700 Subject: [PATCH 121/129] Fix compile errors after rebase 236 master --- .../hive/thrift/ThriftHiveRecordCursor.java | 42 +++++++++---------- .../ThriftHiveRecordCursorProvider.java | 4 +- presto-tests/pom.xml | 11 ----- presto-twitter-functions/pom.xml | 8 +++- .../presto/functions/SnowflakeFunctions.java | 2 +- .../presto/functions/TwitterMapFunctions.java | 8 ++-- .../functions/TwitterStringFunctions.java | 8 ++-- .../functions/TestTwitterFunctions.java | 14 +++---- presto-twitter-server-rpm/pom.xml | 4 +- presto-twitter-server/pom.xml | 2 +- twitter-eventlistener-plugin/pom.xml | 2 +- 11 files changed, 50 insertions(+), 55 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java index 3a4e5d09ce984..bb7492e3b3dc4 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursor.java @@ -14,17 +14,17 @@ package com.facebook.presto.twitter.hive.thrift; import com.facebook.airlift.log.Logger; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.DecimalType; +import com.facebook.presto.common.type.Decimals; +import com.facebook.presto.common.type.Type; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveErrorCode; import com.facebook.presto.hive.HiveType; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.Decimals; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.TypeManager; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import org.apache.hadoop.conf.Configuration; @@ -46,6 +46,21 @@ import java.util.Properties; import java.util.concurrent.TimeUnit; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.Chars.isCharType; +import static com.facebook.presto.common.type.Chars.truncateToLengthAndTrimSpaces; +import static com.facebook.presto.common.type.DateType.DATE; +import static com.facebook.presto.common.type.Decimals.rescale; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.IntegerType.INTEGER; +import static com.facebook.presto.common.type.RealType.REAL; +import static com.facebook.presto.common.type.SmallintType.SMALLINT; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.TinyintType.TINYINT; +import static com.facebook.presto.common.type.VarbinaryType.VARBINARY; +import static com.facebook.presto.common.type.Varchars.isVarcharType; +import static com.facebook.presto.common.type.Varchars.truncateToLength; import static com.facebook.presto.hive.HiveColumnHandle.ColumnType.REGULAR; import static com.facebook.presto.hive.HiveErrorCode.HIVE_CURSOR_ERROR; import static com.facebook.presto.hive.HiveUtil.closeWithSuppression; @@ -53,21 +68,6 @@ import static com.facebook.presto.hive.metastore.MetastoreUtil.isArrayType; import static com.facebook.presto.hive.metastore.MetastoreUtil.isMapType; import static com.facebook.presto.hive.metastore.MetastoreUtil.isRowType; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.Chars.isCharType; -import static com.facebook.presto.spi.type.Chars.truncateToLengthAndTrimSpaces; -import static com.facebook.presto.spi.type.DateType.DATE; -import static com.facebook.presto.spi.type.Decimals.rescale; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.IntegerType.INTEGER; -import static com.facebook.presto.spi.type.RealType.REAL; -import static com.facebook.presto.spi.type.SmallintType.SMALLINT; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.TinyintType.TINYINT; -import static com.facebook.presto.spi.type.VarbinaryType.VARBINARY; -import static com.facebook.presto.spi.type.Varchars.isVarcharType; -import static com.facebook.presto.spi.type.Varchars.truncateToLength; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.Float.floatToRawIntBits; diff --git a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java index fcde2e799ebea..1db575a612d46 100644 --- a/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java +++ b/presto-hive/src/main/java/com/facebook/presto/twitter/hive/thrift/ThriftHiveRecordCursorProvider.java @@ -13,13 +13,13 @@ */ package com.facebook.presto.twitter.hive.thrift; +import com.facebook.presto.common.predicate.TupleDomain; +import com.facebook.presto.common.type.TypeManager; import com.facebook.presto.hive.HdfsEnvironment; import com.facebook.presto.hive.HiveColumnHandle; import com.facebook.presto.hive.HiveRecordCursorProvider; import com.facebook.presto.spi.ConnectorSession; import com.facebook.presto.spi.RecordCursor; -import com.facebook.presto.spi.predicate.TupleDomain; -import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableSet; import com.hadoop.compression.lzo.LzoIndex; import org.apache.hadoop.conf.Configuration; diff --git a/presto-tests/pom.xml b/presto-tests/pom.xml index c914c8b662368..df8145442e360 100644 --- a/presto-tests/pom.xml +++ b/presto-tests/pom.xml @@ -216,11 +216,6 @@ runtime - - com.facebook.airlift - http-client - - com.facebook.presto @@ -248,12 +243,6 @@ test - - javax.ws.rs - javax.ws.rs-api - compile - - diff --git a/presto-twitter-functions/pom.xml b/presto-twitter-functions/pom.xml index 3eee05e20b8e3..8cd003985c99e 100644 --- a/presto-twitter-functions/pom.xml +++ b/presto-twitter-functions/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-twitter-functions @@ -29,6 +29,12 @@ provided + + com.facebook.presto + presto-common + provided + + io.airlift slice diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java index 83af03bee1843..c5eee43e52df5 100644 --- a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/SnowflakeFunctions.java @@ -13,11 +13,11 @@ */ package com.twitter.presto.functions; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import java.util.concurrent.TimeUnit; diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java index 39859aafabb88..84228f3662485 100644 --- a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterMapFunctions.java @@ -13,16 +13,16 @@ */ package com.twitter.presto.functions; -import com.facebook.presto.spi.block.Block; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.type.Type; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlNullable; import com.facebook.presto.spi.function.SqlType; import com.facebook.presto.spi.function.TypeParameter; -import com.facebook.presto.spi.type.Type; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.TypeUtils.readNativeValue; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.TypeUtils.readNativeValue; public class TwitterMapFunctions { diff --git a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java index 4bd9315b5d212..f3b00a3cf1ef6 100644 --- a/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java +++ b/presto-twitter-functions/src/main/java/com/twitter/presto/functions/TwitterStringFunctions.java @@ -13,20 +13,20 @@ */ package com.twitter.presto.functions; +import com.facebook.presto.common.block.Block; +import com.facebook.presto.common.block.BlockBuilder; +import com.facebook.presto.common.type.StandardTypes; import com.facebook.presto.spi.ErrorCodeSupplier; import com.facebook.presto.spi.PrestoException; -import com.facebook.presto.spi.block.Block; -import com.facebook.presto.spi.block.BlockBuilder; import com.facebook.presto.spi.function.Description; import com.facebook.presto.spi.function.LiteralParameters; import com.facebook.presto.spi.function.ScalarFunction; import com.facebook.presto.spi.function.SqlType; -import com.facebook.presto.spi.type.StandardTypes; import com.google.common.primitives.Ints; import io.airlift.slice.Slice; +import static com.facebook.presto.common.type.VarcharType.VARCHAR; import static com.facebook.presto.spi.StandardErrorCode.INVALID_FUNCTION_ARGUMENT; -import static com.facebook.presto.spi.type.VarcharType.VARCHAR; import static io.airlift.slice.SliceUtf8.offsetOfCodePoint; import static java.lang.String.format; diff --git a/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java index 71d54aea612f4..621338b64cf75 100644 --- a/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java +++ b/presto-twitter-functions/src/test/java/com/twitter/presto/functions/TestTwitterFunctions.java @@ -13,20 +13,20 @@ */ package com.twitter.presto.functions; +import com.facebook.presto.common.type.ArrayType; +import com.facebook.presto.common.type.SqlTimestamp; import com.facebook.presto.operator.scalar.AbstractTestFunctions; -import com.facebook.presto.spi.type.ArrayType; -import com.facebook.presto.spi.type.SqlTimestamp; import com.facebook.presto.testing.TestingSession; import com.google.common.collect.ImmutableList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import static com.facebook.presto.common.type.BigintType.BIGINT; +import static com.facebook.presto.common.type.BooleanType.BOOLEAN; +import static com.facebook.presto.common.type.DoubleType.DOUBLE; +import static com.facebook.presto.common.type.TimestampType.TIMESTAMP; +import static com.facebook.presto.common.type.VarcharType.createVarcharType; import static com.facebook.presto.metadata.FunctionExtractor.extractFunctions; -import static com.facebook.presto.spi.type.BigintType.BIGINT; -import static com.facebook.presto.spi.type.BooleanType.BOOLEAN; -import static com.facebook.presto.spi.type.DoubleType.DOUBLE; -import static com.facebook.presto.spi.type.TimestampType.TIMESTAMP; -import static com.facebook.presto.spi.type.VarcharType.createVarcharType; public class TestTwitterFunctions extends AbstractTestFunctions diff --git a/presto-twitter-server-rpm/pom.xml b/presto-twitter-server-rpm/pom.xml index 76ca66802791b..e30625023de0b 100644 --- a/presto-twitter-server-rpm/pom.xml +++ b/presto-twitter-server-rpm/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-twitter-server-rpm @@ -27,7 +27,7 @@ com.facebook.presto presto-twitter-server - 0.235-SNAPSHOT + 0.236-SNAPSHOT tar.gz runtime diff --git a/presto-twitter-server/pom.xml b/presto-twitter-server/pom.xml index d1cf21457b5df..19c98bde8095d 100644 --- a/presto-twitter-server/pom.xml +++ b/presto-twitter-server/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT presto-twitter-server diff --git a/twitter-eventlistener-plugin/pom.xml b/twitter-eventlistener-plugin/pom.xml index 0bc4bc3e356a5..60a708fdadecf 100644 --- a/twitter-eventlistener-plugin/pom.xml +++ b/twitter-eventlistener-plugin/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.235-SNAPSHOT + 0.236-SNAPSHOT 4.0.0 From b20c19134bfc80c72e8a94995016165e48efbb61 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 21:08:50 -0700 Subject: [PATCH 122/129] Exclude transitive dependency to fix build error --- presto-druid/pom.xml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/presto-druid/pom.xml b/presto-druid/pom.xml index 58fd783994555..d1c4ace8f3af6 100644 --- a/presto-druid/pom.xml +++ b/presto-druid/pom.xml @@ -68,6 +68,26 @@ org.jruby.jcodings jcodings + + com.google.errorprone + error_prone_annotations + + + org.ow2.asm + asm + + + org.apache.maven + maven-artifact + + + commons-io + commons-io + + + commons-lang + commons-lang + @@ -123,6 +143,26 @@ org.jruby.jcodings jcodings + + com.google.errorprone + error_prone_annotations + + + org.ow2.asm + asm + + + org.apache.maven + maven-artifact + + + commons-io + commons-io + + + commons-lang + commons-lang + From 8813de03c994b1c32c3682ee351a1af8f9ed7847 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 22:15:03 -0700 Subject: [PATCH 123/129] Fix the exception of 'Internal file \"column_name\" doesn't exist' --- .../java/com/facebook/presto/druid/DruidQueryGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java index 5aa1bf74c50d2..5c6b067332aca 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java @@ -255,7 +255,7 @@ public DruidQueryGeneratorContext visitTableScan(TableScanNode node, DruidQueryG node.getOutputVariables().forEach(outputColumn -> { DruidColumnHandle druidColumn = (DruidColumnHandle) (node.getAssignments().get(outputColumn)); checkArgument(druidColumn.getType().equals(DruidColumnHandle.DruidColumnType.REGULAR), "Unexpected druid column handle that is not regular: " + druidColumn); - selections.put(outputColumn, new Selection("\\\"" + druidColumn.getColumnName() + "\\\"", TABLE_COLUMN)); + selections.put(outputColumn, new Selection(druidColumn.getColumnName(), TABLE_COLUMN)); }); return new DruidQueryGeneratorContext(selections, tableHandle.getTableName()); } From 18dd19f7e0f0ff266c8b2110dd6b38e1a28a8ec9 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Thu, 7 May 2020 22:41:44 -0700 Subject: [PATCH 124/129] Improve JSON serialization for the http requests to Druid --- .../facebook/presto/druid/DruidClient.java | 44 ++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java index 20bb766fc4b72..e2507d1813452 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java @@ -23,6 +23,8 @@ import com.facebook.presto.druid.metadata.DruidSegmentInfo; import com.facebook.presto.druid.metadata.DruidTableInfo; import com.facebook.presto.spi.PrestoException; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.ImmutableList; import javax.inject.Inject; @@ -137,7 +139,7 @@ private static Request.Builder setContentTypeHeaders(Request.Builder requestBuil private static byte[] createRequestBody(String query, DruidResultFormat resultFormat, boolean queryHeader) { - return format("{\"query\":\"%s\",\"resultFormat\":\"%s\",\"header\": %b }\n", query, resultFormat.getResultFormat(), queryHeader).getBytes(); + return new DruidRequestBody(query, resultFormat.getResultFormat(), queryHeader).toJson().getBytes(); } private Request prepareMetadataQuery(String query) @@ -183,4 +185,44 @@ public InputStream handle(Request request, com.facebook.airlift.http.client.Resp } } } + public static class DruidRequestBody + { + private String query; + private String resultFormat; + private boolean queryHeader; + @JsonCreator + public DruidRequestBody( + @JsonProperty("query") String query, + @JsonProperty("resultFormat") String resultFormat, + @JsonProperty("queryHeader") boolean queryHeader) + { + requireNonNull(query); + this.query = query; + this.resultFormat = resultFormat; + this.queryHeader = queryHeader; + } + + @JsonProperty("query") + public String getQuery() + { + return query; + } + + @JsonProperty("resultFormat") + public String getResultFormat() + { + return resultFormat; + } + + @JsonProperty("queryHeader") + public boolean isQueryHeader() + { + return queryHeader; + } + + public String toJson() + { + return JsonCodec.jsonCodec(DruidRequestBody.class).toJson(this); + } + } } From cc6ef24f20ada74a9d12302974678959cac3268f Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 8 May 2020 12:36:34 -0700 Subject: [PATCH 125/129] Escaping variable name and the column name inside distinct count. Fix unit test --- .../druid/DruidFilterExpressionConverter.java | 2 +- .../druid/DruidQueryGeneratorContext.java | 6 ++- .../druid/TestDruidExpressionConverters.java | 20 +++---- .../presto/druid/TestDruidQueryBase.java | 4 +- .../presto/druid/TestDruidQueryGenerator.java | 52 +++++++++++-------- 5 files changed, 47 insertions(+), 37 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java index e0275464f943d..a45b7c5938f47 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidFilterExpressionConverter.java @@ -213,7 +213,7 @@ public DruidExpression visitLambda(LambdaDefinitionExpression lambda, Function context) { Selection input = requireNonNull(context.apply(reference), format("Input column %s does not exist in the input: %s", reference, context)); - return new DruidExpression(input.getDefinition(), input.getOrigin()); + return new DruidExpression(input.getEscapedDefinition(), input.getOrigin()); } @Override diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java index a5a252b5c2b45..d0462a1204eb3 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java @@ -168,7 +168,7 @@ public DruidQueryGeneratorContext withAggregation( String definition = entry.getValue().getDefinition(); int start = definition.indexOf("("); int end = definition.indexOf(")"); - String countDistinctClause = "count ( distinct " + definition.substring(start + 1, end) + ")"; + String countDistinctClause = "count ( distinct \"" + definition.substring(start + 1, end) + "\")"; Selection countDistinctSelection = new Selection(countDistinctClause, entry.getValue().getOrigin()); builder.put(entry.getKey(), countDistinctSelection); } @@ -285,7 +285,9 @@ public Map getAssignments() selections.entrySet().stream().filter(e -> !hiddenColumnSet.contains(e.getKey())).forEach(entry -> { VariableReferenceExpression variable = entry.getKey(); Selection selection = entry.getValue(); - DruidColumnHandle handle = selection.getOrigin() == Origin.TABLE_COLUMN ? new DruidColumnHandle(selection.getDefinition(), variable.getType(), DruidColumnHandle.DruidColumnType.REGULAR) : new DruidColumnHandle(variable, DruidColumnHandle.DruidColumnType.DERIVED); + DruidColumnHandle handle = selection.getOrigin() == Origin.TABLE_COLUMN ? + new DruidColumnHandle(selection.getEscapedDefinition(), variable.getType(), DruidColumnHandle.DruidColumnType.REGULAR) : + new DruidColumnHandle(variable, DruidColumnHandle.DruidColumnType.DERIVED); result.put(variable, handle); }); return result; diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidExpressionConverters.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidExpressionConverters.java index e01a2faeb707f..48d58502b039d 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidExpressionConverters.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidExpressionConverters.java @@ -52,26 +52,26 @@ public void testFilterExpressionConverter() SessionHolder sessionHolder = new SessionHolder(); // Simple comparisons - testFilter("regionid = 20", "(regionId = 20)", sessionHolder); - testFilter("regionid >= 20", "(regionId >= 20)", sessionHolder); - testFilter("city = 'Campbell'", "(city = 'Campbell')", sessionHolder); + testFilter("\"region.id\" = 20", "(\"region.Id\" = 20)", sessionHolder); + testFilter("\"region.id\" >= 20", "(\"region.Id\" >= 20)", sessionHolder); + testFilter("city = 'Campbell'", "(\"city\" = 'Campbell')", sessionHolder); // between testFilter("totalfare between 20 and 30", "((fare + trip) BETWEEN 20 AND 30)", sessionHolder); // in, not in - testFilter("regionid in (20, 30, 40)", "(regionId IN (20, 30, 40))", sessionHolder); - testFilter("regionid not in (20, 30, 40)", "(regionId NOT IN (20, 30, 40))", sessionHolder); - testFilter("city in ('San Jose', 'Campbell', 'Union City')", "(city IN ('San Jose', 'Campbell', 'Union City'))", sessionHolder); - testFilter("city not in ('San Jose', 'Campbell', 'Union City')", "(city NOT IN ('San Jose', 'Campbell', 'Union City'))", sessionHolder); + testFilter("\"region.id\" in (20, 30, 40)", "(\"region.Id\" IN (20, 30, 40))", sessionHolder); + testFilter("\"region.id\" not in (20, 30, 40)", "(\"region.Id\" NOT IN (20, 30, 40))", sessionHolder); + testFilter("city in ('San Jose', 'Campbell', 'Union City')", "(\"city\" IN ('San Jose', 'Campbell', 'Union City'))", sessionHolder); + testFilter("city not in ('San Jose', 'Campbell', 'Union City')", "(\"city\" NOT IN ('San Jose', 'Campbell', 'Union City'))", sessionHolder); testFilterUnsupported("secondssinceepoch + 1 in (234, 24324)", sessionHolder); testFilterUnsupported("NOT (secondssinceepoch = 2323)", sessionHolder); // combinations - testFilter("totalfare between 20 and 30 AND regionid > 20 OR city = 'Campbell'", - "((((fare + trip) BETWEEN 20 AND 30) AND (regionId > 20)) OR (city = 'Campbell'))", sessionHolder); + testFilter("totalfare between 20 and 30 AND \"region.id\" > 20 OR city = 'Campbell'", + "((((fare + trip) BETWEEN 20 AND 30) AND (\"region.Id\" > 20)) OR (\"city\" = 'Campbell'))", sessionHolder); - testFilter("secondssinceepoch > 1559978258", "(secondsSinceEpoch > 1559978258)", sessionHolder); + testFilter("secondssinceepoch > 1559978258", "(\"secondsSinceEpoch\" > 1559978258)", sessionHolder); } private void testFilter(String sqlExpression, String expectedDruidExpression, SessionHolder sessionHolder) diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java index 1d79a2293466c..c0c54d5993112 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryBase.java @@ -88,7 +88,7 @@ public class TestDruidQueryBase protected static ConnectorId druidConnectorId = new ConnectorId("id"); protected static DruidTableHandle realtimeOnlyTable = new DruidTableHandle("schema", "realtimeOnly", Optional.empty()); protected static DruidTableHandle hybridTable = new DruidTableHandle("schema", "hybrid", Optional.empty()); - protected static DruidColumnHandle regionId = new DruidColumnHandle("regionId", BIGINT, REGULAR); + protected static DruidColumnHandle regionId = new DruidColumnHandle("region.Id", BIGINT, REGULAR); protected static DruidColumnHandle city = new DruidColumnHandle("city", VARCHAR, REGULAR); protected static final DruidColumnHandle fare = new DruidColumnHandle("fare", DOUBLE, REGULAR); protected static final DruidColumnHandle secondsSinceEpoch = new DruidColumnHandle("secondsSinceEpoch", BIGINT, REGULAR); @@ -98,7 +98,7 @@ public class TestDruidQueryBase protected final DruidConfig druidConfig = new DruidConfig(); protected static final Map testInput = ImmutableMap.of( - new VariableReferenceExpression("regionid", BIGINT), new DruidQueryGeneratorContext.Selection("regionId", TABLE_COLUMN), + new VariableReferenceExpression("region.id", BIGINT), new DruidQueryGeneratorContext.Selection("region.Id", TABLE_COLUMN), new VariableReferenceExpression("city", VARCHAR), new DruidQueryGeneratorContext.Selection("city", TABLE_COLUMN), new VariableReferenceExpression("fare", DOUBLE), new DruidQueryGeneratorContext.Selection("fare", TABLE_COLUMN), new VariableReferenceExpression("totalfare", DOUBLE), new DruidQueryGeneratorContext.Selection("(fare + trip)", DERIVED), diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java index 1c0d7a2cb4d99..2ecd56a6b8151 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidQueryGenerator.java @@ -85,10 +85,10 @@ public void testSimpleSelectStar() { testDQL( planBuilder -> limit(planBuilder, 50L, tableScan(planBuilder, druidTable, regionId, city, fare, secondsSinceEpoch)), - "SELECT regionId, city, fare, secondsSinceEpoch FROM realtimeOnly LIMIT 50"); + "SELECT \"region.Id\", \"city\", \"fare\", \"secondsSinceEpoch\" FROM \"realtimeOnly\" LIMIT 50"); testDQL( planBuilder -> limit(planBuilder, 10L, tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch)), - "SELECT regionId, secondsSinceEpoch FROM realtimeOnly LIMIT 10"); + "SELECT \"region.Id\", \"secondsSinceEpoch\" FROM \"realtimeOnly\" LIMIT 10"); } @Test @@ -105,7 +105,7 @@ public void testSimpleSelectWithFilterLimit() tableScan(planBuilder, druidTable, regionId, city, fare, secondsSinceEpoch), getRowExpression("secondssinceepoch > 20", defaultSessionHolder)), ImmutableList.of("city", "secondssinceepoch"))), - "SELECT city, secondsSinceEpoch FROM realtimeOnly WHERE (secondsSinceEpoch > 20) LIMIT 30"); + "SELECT \"city\", \"secondsSinceEpoch\" FROM \"realtimeOnly\" WHERE (\"secondsSinceEpoch\" > 20) LIMIT 30"); } @Test @@ -114,25 +114,28 @@ public void testCountStar() BiConsumer aggregationFunctionBuilder = (planBuilder, aggregationBuilder) -> aggregationBuilder.addAggregation(planBuilder.variable("agg"), getRowExpression("count(*)", defaultSessionHolder)); PlanNode justScan = buildPlan(planBuilder -> tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare)); PlanNode filter = buildPlan(planBuilder -> filter(planBuilder, tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare), getRowExpression("fare > 3", defaultSessionHolder))); - PlanNode anotherFilter = buildPlan(planBuilder -> filter(planBuilder, tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare), getRowExpression("secondssinceepoch between 200 and 300 and regionid >= 40", defaultSessionHolder))); + PlanNode anotherFilter = buildPlan(planBuilder -> + filter(planBuilder, + tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare), + getRowExpression("secondssinceepoch between 200 and 300 and \"region.id\" >= 40", defaultSessionHolder))); testDQL( planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(justScan).globalGrouping())), - "SELECT count(*) FROM realtimeOnly"); + "SELECT count(*) FROM \"realtimeOnly\""); testDQL( planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(filter).globalGrouping())), - "SELECT count(*) FROM realtimeOnly WHERE (fare > 3)"); + "SELECT count(*) FROM \"realtimeOnly\" WHERE (\"fare\" > 3)"); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(filter).singleGroupingSet(variable("regionid")))), - "SELECT regionId, count(*) FROM realtimeOnly WHERE (fare > 3) GROUP BY regionId"); + planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(filter).singleGroupingSet(variable("region.id")))), + "SELECT \"region.Id\", count(*) FROM \"realtimeOnly\" WHERE (\"fare\" > 3) GROUP BY \"region.Id\""); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(justScan).singleGroupingSet(variable("regionid")))), - "SELECT regionId, count(*) FROM realtimeOnly GROUP BY regionId"); + planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(justScan).singleGroupingSet(variable("region.id")))), + "SELECT \"region.Id\", count(*) FROM \"realtimeOnly\" GROUP BY \"region.Id\""); testDQL( - planBuilder -> limit(planBuilder, 5L, planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(justScan).singleGroupingSet(variable("regionid"))))), - "SELECT regionId, count(*) FROM realtimeOnly GROUP BY regionId LIMIT 5"); + planBuilder -> limit(planBuilder, 5L, planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(justScan).singleGroupingSet(variable("region.id"))))), + "SELECT \"region.Id\", count(*) FROM \"realtimeOnly\" GROUP BY \"region.Id\" LIMIT 5"); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(anotherFilter).singleGroupingSet(variable("regionid"), variable("city")))), - "SELECT regionId, city, count(*) FROM realtimeOnly WHERE ((secondsSinceEpoch BETWEEN 200 AND 300) AND (regionId >= 40)) GROUP BY regionId, city"); + planBuilder -> planBuilder.aggregation(aggBuilder -> aggregationFunctionBuilder.accept(planBuilder, aggBuilder.source(anotherFilter).singleGroupingSet(variable("region.id"), variable("city")))), + "SELECT \"region.Id\", \"city\", count(*) FROM \"realtimeOnly\" WHERE ((\"secondsSinceEpoch\" BETWEEN 200 AND 300) AND (\"region.Id\" >= 40)) GROUP BY \"region.Id\", \"city\""); } @Test @@ -140,27 +143,32 @@ public void testDistinctSelection() { PlanNode justScan = buildPlan(planBuilder -> tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare)); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("regionid"))), - "SELECT regionId, count(*) FROM realtimeOnly GROUP BY regionId"); + planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("region.id"))), + "SELECT \"region.Id\", count(*) FROM \"realtimeOnly\" GROUP BY \"region.Id\""); } @Test public void testDistinctCountPushdown() { PlanNode justScan = buildPlan(planBuilder -> tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare)); - PlanNode distinctAggregation = buildPlan(planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("regionid")))); + PlanNode distinctAggregation = buildPlan(planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("region.id")))); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(distinctAggregation).globalGrouping().addAggregation(variable("regionid"), getRowExpression("count(regionid)", defaultSessionHolder))), - "SELECT count ( distinct regionId) FROM realtimeOnly"); + planBuilder -> planBuilder.aggregation( + aggBuilder -> aggBuilder.source(distinctAggregation).globalGrouping().addAggregation(variable("region.id"), + getRowExpression("count(\"region.id\")", defaultSessionHolder))), + "SELECT count ( distinct \"region.Id\") FROM \"realtimeOnly\""); } @Test public void testDistinctCountGroupByPushdown() { PlanNode justScan = buildPlan(planBuilder -> tableScan(planBuilder, druidTable, regionId, secondsSinceEpoch, city, fare)); - PlanNode distinctAggregation = buildPlan(planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("city"), variable("regionid")))); + PlanNode distinctAggregation = buildPlan(planBuilder -> planBuilder.aggregation( + aggBuilder -> aggBuilder.source(justScan).singleGroupingSet(variable("city"), variable("region.id")))); testDQL( - planBuilder -> planBuilder.aggregation(aggBuilder -> aggBuilder.source(distinctAggregation).singleGroupingSet(variable("city")).addAggregation(variable("regionid"), getRowExpression("count(regionid)", defaultSessionHolder))), - "SELECT city, count ( distinct regionId) FROM realtimeOnly GROUP BY city"); + planBuilder -> planBuilder.aggregation( + aggBuilder -> aggBuilder.source(distinctAggregation).singleGroupingSet(variable("city")) + .addAggregation(variable("region.id"), getRowExpression("count(\"region.id\")", defaultSessionHolder))), + "SELECT \"city\", count ( distinct \"region.Id\") FROM \"realtimeOnly\" GROUP BY \"city\""); } } From 3ff4f0132308e71db37bc66f718d92673cc96ecb Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Fri, 8 May 2020 12:47:36 -0700 Subject: [PATCH 126/129] Add unit test case for druid.hadoop.config.resources --- .../com/facebook/presto/druid/DruidConfig.java | 8 ++++++-- .../com/facebook/presto/druid/TestDruidConfig.java | 14 +++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java index ec1872d3649ff..ea253672d78f7 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidConfig.java @@ -94,13 +94,17 @@ public List getHadoopResourceConfigFiles() @Config("druid.hadoop.config.resources") public DruidConfig setHadoopResourceConfigFiles(String files) { - this.hadoopResourceConfigFiles = Splitter.on(',').trimResults().omitEmptyStrings().splitToList(files); + if (files != null) { + this.hadoopResourceConfigFiles = Splitter.on(',').trimResults().omitEmptyStrings().splitToList(files); + } return this; } public DruidConfig setHadoopResourceConfigFiles(List files) { - this.hadoopResourceConfigFiles = ImmutableList.copyOf(files); + if (files != null) { + this.hadoopResourceConfigFiles = ImmutableList.copyOf(files); + } return this; } } diff --git a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java index c4cfc00e3df13..51cc4040bcde7 100644 --- a/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java +++ b/presto-druid/src/test/java/com/facebook/presto/druid/TestDruidConfig.java @@ -14,6 +14,7 @@ package com.facebook.presto.druid; import com.facebook.airlift.configuration.testing.ConfigAssertions; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.testng.annotations.Test; @@ -28,10 +29,11 @@ public class TestDruidConfig public void testDefaults() { assertRecordedDefaults(recordDefaults(DruidConfig.class) - .setDruidBrokerUrl(null) - .setDruidCoordinatorUrl(null) - .setDruidSchema("druid") - .setComputePushdownEnabled(false)); + .setDruidBrokerUrl(null) + .setDruidCoordinatorUrl(null) + .setDruidSchema("druid") + .setComputePushdownEnabled(false) + .setHadoopResourceConfigFiles((String) null)); } @Test @@ -42,13 +44,15 @@ public void testExplicitPropertyMappings() .put("druid.coordinator-url", "http://druid.coordinator:4321") .put("druid.schema-name", "test") .put("druid.compute-pushdown-enabled", "true") + .put("druid.hadoop.config.resources", "/etc/core-site.xml,/etc/hdfs-site.xml") .build(); DruidConfig expected = new DruidConfig() .setDruidBrokerUrl("http://druid.broker:1234") .setDruidCoordinatorUrl("http://druid.coordinator:4321") .setDruidSchema("test") - .setComputePushdownEnabled(true); + .setComputePushdownEnabled(true) + .setHadoopResourceConfigFiles(ImmutableList.of("/etc/core-site.xml", "/etc/hdfs-site.xml")); ConfigAssertions.assertFullMapping(properties, expected); } From 0a9a16547d4593a77eb3c8195faec2ac9d3679f6 Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Sat, 9 May 2020 15:30:42 -0700 Subject: [PATCH 127/129] Refactoring and fix code reivew issue --- .../java/com/facebook/presto/druid/DruidClient.java | 7 ++++--- .../presto/druid/DruidQueryGeneratorContext.java | 10 +++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java index e2507d1813452..67dd18f47b76d 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java @@ -185,11 +185,12 @@ public InputStream handle(Request request, com.facebook.airlift.http.client.Resp } } } - public static class DruidRequestBody + private static class DruidRequestBody { private String query; private String resultFormat; private boolean queryHeader; + @JsonCreator public DruidRequestBody( @JsonProperty("query") String query, @@ -197,8 +198,8 @@ public DruidRequestBody( @JsonProperty("queryHeader") boolean queryHeader) { requireNonNull(query); - this.query = query; - this.resultFormat = resultFormat; + this.query = requireNonNull(query); + this.resultFormat = requireNonNull(resultFormat); this.queryHeader = queryHeader; } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java index d0462a1204eb3..ebc29973ea4ed 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java @@ -168,7 +168,7 @@ public DruidQueryGeneratorContext withAggregation( String definition = entry.getValue().getDefinition(); int start = definition.indexOf("("); int end = definition.indexOf(")"); - String countDistinctClause = "count ( distinct \"" + definition.substring(start + 1, end) + "\")"; + String countDistinctClause = "count ( distinct " + escapeSqlIdentifier(definition.substring(start + 1, end)) + ")"; Selection countDistinctSelection = new Selection(countDistinctClause, entry.getValue().getOrigin()); builder.put(entry.getKey(), countDistinctSelection); } @@ -194,6 +194,10 @@ public DruidQueryGeneratorContext withAggregation( newHiddenColumnSet); } + private static String escapeSqlIdentifier(String identifier) + { + return "\"" + identifier + "\""; + } public DruidQueryGeneratorContext withVariablesInAggregation(Set newVariablesInAggregation) { return new DruidQueryGeneratorContext( @@ -251,7 +255,7 @@ public DruidQueryGenerator.GeneratedDql toQuery() } String tableName = from.orElseThrow(() -> new PrestoException(DRUID_QUERY_GENERATOR_FAILURE, "Table name missing in Druid query")); - String query = "SELECT " + expressions + " FROM \"" + tableName + "\""; + String query = "SELECT " + expressions + " FROM " + escapeSqlIdentifier(tableName); boolean pushdown = false; if (filter.isPresent()) { // this is hack!!!. Ideally we want to clone the scan pipeline and create/update the filter in the scan pipeline to contain this filter and @@ -337,7 +341,7 @@ public String getDefinition() public String getEscapedDefinition() { if (origin == Origin.TABLE_COLUMN) { - return "\"" + definition + "\""; + return escapeSqlIdentifier(definition); } return definition; } From 53662bfaf5d9e81eb9bb68779281f624608ee4fd Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 19 May 2020 11:21:39 -0700 Subject: [PATCH 128/129] [Ignore when rebase, already in upstream] fix json serialization --- .../src/main/java/com/facebook/presto/druid/DruidClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java index 67dd18f47b76d..49d5e56ee2442 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidClient.java @@ -185,7 +185,7 @@ public InputStream handle(Request request, com.facebook.airlift.http.client.Resp } } } - private static class DruidRequestBody + public static class DruidRequestBody { private String query; private String resultFormat; From 641d06c22e35d06e2a0d51f9f3790382b055f79d Mon Sep 17 00:00:00 2001 From: Beinan Wang Date: Tue, 19 May 2020 15:52:41 -0700 Subject: [PATCH 129/129] Skip escaping columnnames for table-scan on hdfs --- .../java/com/facebook/presto/druid/DruidQueryGenerator.java | 2 +- .../com/facebook/presto/druid/DruidQueryGeneratorContext.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java index 5c6b067332aca..0e3df3e8a20f6 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGenerator.java @@ -255,7 +255,7 @@ public DruidQueryGeneratorContext visitTableScan(TableScanNode node, DruidQueryG node.getOutputVariables().forEach(outputColumn -> { DruidColumnHandle druidColumn = (DruidColumnHandle) (node.getAssignments().get(outputColumn)); checkArgument(druidColumn.getType().equals(DruidColumnHandle.DruidColumnType.REGULAR), "Unexpected druid column handle that is not regular: " + druidColumn); - selections.put(outputColumn, new Selection(druidColumn.getColumnName(), TABLE_COLUMN)); + selections.put(outputColumn, new Selection("\"" + druidColumn.getColumnName() + "\"", TABLE_COLUMN)); }); return new DruidQueryGeneratorContext(selections, tableHandle.getTableName()); } diff --git a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java index ebc29973ea4ed..765a2c1abb2c2 100644 --- a/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java +++ b/presto-druid/src/main/java/com/facebook/presto/druid/DruidQueryGeneratorContext.java @@ -290,7 +290,7 @@ public Map getAssignments() VariableReferenceExpression variable = entry.getKey(); Selection selection = entry.getValue(); DruidColumnHandle handle = selection.getOrigin() == Origin.TABLE_COLUMN ? - new DruidColumnHandle(selection.getEscapedDefinition(), variable.getType(), DruidColumnHandle.DruidColumnType.REGULAR) : + new DruidColumnHandle(selection.getDefinition(), variable.getType(), DruidColumnHandle.DruidColumnType.REGULAR) : new DruidColumnHandle(variable, DruidColumnHandle.DruidColumnType.DERIVED); result.put(variable, handle); });