diff --git a/core/trino-spi/pom.xml b/core/trino-spi/pom.xml
index 9d75c87fce85..ad44a7419cfd 100644
--- a/core/trino-spi/pom.xml
+++ b/core/trino-spi/pom.xml
@@ -185,16 +185,6 @@
${trino.check.skip-revapi}
xml
-
-
-
- -
- java
- @io.trino.spi.Experimental(*) ^*;
-
-
-
-
true
@@ -664,6 +654,14 @@
method java.lang.String io.trino.spi.NodeManager::getEnvironment()
Unused
+ -
+
java.class.removed
+ @interface io.trino.spi.Experimental
+
+ -
+
java.annotation.removed
+ io.trino.spi.Experimental
+
diff --git a/core/trino-spi/src/main/java/io/trino/spi/Experimental.java b/core/trino-spi/src/main/java/io/trino/spi/Experimental.java
deleted file mode 100644
index 956081ee22ac..000000000000
--- a/core/trino-spi/src/main/java/io/trino/spi/Experimental.java
+++ /dev/null
@@ -1,44 +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 io.trino.spi;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import static java.lang.annotation.ElementType.CONSTRUCTOR;
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-/**
- * Signifies that a public API (public class, method or field) is subject to incompatible changes,
- * or even removal, in a future release. An API bearing this annotation is exempt from any
- * compatibility guarantees made by its containing library. Note that the presence of this
- * annotation implies nothing about the quality or performance of the API in question, only the fact
- * that it has not been finalized.
- */
-@Retention(RUNTIME)
-@Target({TYPE, FIELD, METHOD, CONSTRUCTOR})
-@Documented
-public @interface Experimental
-{
- /**
- * When the community expects the SPI will be finalized, but this date may be extended.
- *
- * The value should be a date in ISO-8601 format uuuu-MM-dd.
- */
- String eta();
-}
diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlock.java b/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlock.java
index 5a71539d272b..03dfded1f9a0 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlock.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/block/IntArrayBlock.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.block;
-import io.trino.spi.Experimental;
import jakarta.annotation.Nullable;
import java.util.Optional;
@@ -231,13 +230,11 @@ boolean[] getRawValueIsNull()
return valueIsNull;
}
- @Experimental(eta = "2023-12-31")
public int[] getRawValues()
{
return values;
}
- @Experimental(eta = "2023-12-31")
public int getRawValuesOffset()
{
return arrayOffset;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/block/ValueBlock.java b/core/trino-spi/src/main/java/io/trino/spi/block/ValueBlock.java
index 9af2a9283bd6..ec92b2d223b9 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/block/ValueBlock.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/block/ValueBlock.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.block;
-import io.trino.spi.Experimental;
-
import java.util.Optional;
public non-sealed interface ValueBlock
@@ -49,6 +47,5 @@ default int getUnderlyingValuePosition(int position)
* Returns Optional.empty() when there are no NULLs in the Block.
* The returned ByteArrayBlock must not contain NULL values.
*/
- @Experimental(eta = "2025-01-01")
Optional getNulls();
}
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/CatalogHandle.java b/core/trino-spi/src/main/java/io/trino/spi/connector/CatalogHandle.java
index 8f796369a181..49407bd0cb83 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/CatalogHandle.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/CatalogHandle.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
-import io.trino.spi.Experimental;
import io.trino.spi.catalog.CatalogName;
import java.util.Objects;
@@ -28,7 +27,6 @@
import static java.util.Locale.ROOT;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2023-02-01")
public final class CatalogHandle
{
private static final int INSTANCE_SIZE = instanceSize(CatalogHandle.class);
@@ -169,7 +167,6 @@ public boolean isInternal()
}
}
- @Experimental(eta = "2023-02-01")
public static final class CatalogVersion
{
private static final int INSTANCE_SIZE = instanceSize(CatalogVersion.class);
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/Connector.java b/core/trino-spi/src/main/java/io/trino/spi/connector/Connector.java
index 1bc133585270..c7477b15b860 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/Connector.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/Connector.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
import io.trino.spi.function.FunctionProvider;
import io.trino.spi.function.table.ConnectorTableFunction;
import io.trino.spi.procedure.Procedure;
@@ -127,7 +126,6 @@ default Set getSystemTables()
/**
* @return the set of procedures provided by this connector
*/
- @Experimental(eta = "2022-10-31")
default Optional getFunctionProvider()
{
return Optional.empty();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java
index 1c6af1fcef78..fcbd62fc2fd5 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorMetadata.java
@@ -14,7 +14,6 @@
package io.trino.spi.connector;
import io.airlift.slice.Slice;
-import io.trino.spi.Experimental;
import io.trino.spi.RefreshType;
import io.trino.spi.TrinoException;
import io.trino.spi.expression.Call;
@@ -333,7 +332,6 @@ default Iterator streamTableColumns(ConnectorSession sessi
* (e.g. for all relations that would be returned by {@link #listTables(ConnectorSession, Optional)}).
* Redirected table names are included, but the comment for them is not.
*/
- @Experimental(eta = "2024-01-01")
default Iterator streamRelationColumns(
ConnectorSession session,
Optional schemaName,
@@ -372,7 +370,6 @@ default Iterator streamRelationColumns(
* (e.g. for all relations that would be returned by {@link #listTables(ConnectorSession, Optional)}).
* Redirected table names are included, but the comment for them is not.
*/
- @Experimental(eta = "2024-01-01")
default Iterator streamRelationComments(ConnectorSession session, Optional schemaName, UnaryOperator> relationFilter)
{
List materializedViews = getMaterializedViews(session, schemaName).entrySet().stream()
@@ -573,7 +570,7 @@ default void addColumn(ConnectorSession session, ConnectorTableHandle tableHandl
*
* @param parentPath path to a field within the column, without leaf field name.
*/
- @Experimental(eta = "2023-06-01") // TODO add support for rows inside arrays and maps and for anonymous row fields
+ // TODO add support for rows inside arrays and maps and for anonymous row fields
default void addField(ConnectorSession session, ConnectorTableHandle tableHandle, List parentPath, String fieldName, Type type, boolean ignoreExisting)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support adding fields");
@@ -582,7 +579,6 @@ default void addField(ConnectorSession session, ConnectorTableHandle tableHandle
/**
* Set the specified column type
*/
- @Experimental(eta = "2023-04-01")
default void setColumnType(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle column, Type type)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support setting column types");
@@ -593,7 +589,6 @@ default void setColumnType(ConnectorSession session, ConnectorTableHandle tableH
*
* @param fieldPath path starting with column name. The path is always lower-cased. It cannot be an empty or a single element.
*/
- @Experimental(eta = "2023-09-01")
default void setFieldType(ConnectorSession session, ConnectorTableHandle tableHandle, List fieldPath, Type type)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support setting field types");
@@ -629,7 +624,7 @@ default void renameColumn(ConnectorSession session, ConnectorTableHandle tableHa
* @param fieldPath path starting with column name.
* @param target the new field name. The field position and nested level shouldn't be changed.
*/
- @Experimental(eta = "2023-09-01") // TODO add support for rows inside arrays and maps and for anonymous row fields
+ // TODO add support for rows inside arrays and maps and for anonymous row fields
default void renameField(ConnectorSession session, ConnectorTableHandle tableHandle, List fieldPath, String target)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support renaming fields");
@@ -648,7 +643,7 @@ default void dropColumn(ConnectorSession session, ConnectorTableHandle tableHand
*
* @param fieldPath path to a field within the column, without leading column name.
*/
- @Experimental(eta = "2023-05-01") // TODO add support for rows inside arrays and maps and for anonymous row fields
+ // TODO add support for rows inside arrays and maps and for anonymous row fields
default void dropField(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle column, List fieldPath)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support dropping fields");
@@ -667,7 +662,6 @@ default Optional getNewTableLayout(ConnectorSession sessio
* If {@link Optional#empty()} is returned, the type will be used as is during table creation which may or may not be supported by the connector.
* The effective type shall be a type that is cast-compatible with the input type.
*/
- @Experimental(eta = "2024-01-31")
default Optional getSupportedType(ConnectorSession session, Map tableProperties, Type type)
{
return Optional.empty();
@@ -975,7 +969,6 @@ default boolean isView(ConnectorSession session, SchemaTableName viewName)
/**
* Gets the view properties for the specified view.
*/
- @Experimental(eta = "2024-06-01")
default Map getViewProperties(ConnectorSession session, SchemaTableName viewName)
{
return Map.of();
@@ -1132,7 +1125,6 @@ default void dropLanguageFunction(ConnectorSession session, SchemaFunctionName n
/**
* Creates the specified branch.
*/
- @Experimental(eta = "2025-12-31")
default void createBranch(ConnectorSession session, ConnectorTableHandle tableHandle, String branch, Map properties)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support creating branches");
@@ -1141,7 +1133,6 @@ default void createBranch(ConnectorSession session, ConnectorTableHandle tableHa
/**
* Drops the specified branch.
*/
- @Experimental(eta = "2025-12-31")
default void dropBranch(ConnectorSession session, ConnectorTableHandle tableHandle, String branch)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support dropping branches");
@@ -1150,7 +1141,6 @@ default void dropBranch(ConnectorSession session, ConnectorTableHandle tableHand
/**
* Fast-forwards the specified branch.
*/
- @Experimental(eta = "2025-12-31")
default void fastForwardBranch(ConnectorSession session, ConnectorTableHandle tableHandle, String sourceBranch, String targetBranch)
{
throw new TrinoException(NOT_SUPPORTED, "This connector does not support fast-forwarding branches");
@@ -1159,7 +1149,6 @@ default void fastForwardBranch(ConnectorSession session, ConnectorTableHandle ta
/**
* Get all branches.
*/
- @Experimental(eta = "2025-12-31")
default Collection listBranches(ConnectorSession session, SchemaTableName tableName)
{
return List.of();
@@ -1168,7 +1157,6 @@ default Collection listBranches(ConnectorSession session, SchemaTableNam
/**
* Does the specified branch exist.
*/
- @Experimental(eta = "2025-12-31")
default boolean branchExists(ConnectorSession session, SchemaTableName tableName, String branch)
{
return listBranches(session, tableName).contains(branch);
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java
index 36a141b50db0..637aaf9c0a25 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorSplitManager.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
import io.trino.spi.function.table.ConnectorTableFunctionHandle;
public interface ConnectorSplitManager
@@ -28,7 +27,6 @@ default ConnectorSplitSource getSplits(
throw new UnsupportedOperationException();
}
- @Experimental(eta = "2023-07-31")
default ConnectorSplitSource getSplits(
ConnectorTransactionHandle transaction,
ConnectorSession session,
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableMetadata.java
index 2de63797c2c2..c80d21d7fba8 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableMetadata.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
-
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
@@ -48,7 +46,6 @@ public ConnectorTableMetadata(SchemaTableName table, List column
this(table, columns, properties, comment, List.of());
}
- @Experimental(eta = "2023-03-31")
public ConnectorTableMetadata(SchemaTableName table, List columns, Map properties, Optional comment, List checkConstraints)
{
requireNonNull(table, "table is null");
@@ -90,7 +87,6 @@ public Optional getComment()
*
* @return List of string representation of a Trino SQL scalar expression that can refer to table columns by name and produces a result coercible to boolean
*/
- @Experimental(eta = "2023-03-31")
public List getCheckConstraints()
{
return checkConstraints;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableSchema.java b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableSchema.java
index a06b275be26b..a96bb8e93c6d 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableSchema.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/ConnectorTableSchema.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
-
import java.util.List;
import java.util.StringJoiner;
@@ -31,7 +29,6 @@ public ConnectorTableSchema(SchemaTableName table, List columns)
this(table, columns, List.of());
}
- @Experimental(eta = "2023-03-31")
public ConnectorTableSchema(SchemaTableName table, List columns, List checkConstraints)
{
requireNonNull(table, "table is null");
@@ -60,7 +57,6 @@ public List getColumns()
*
* @return List of string representation of a Trino SQL scalar expression that can refer to table columns by name and produces a result coercible to boolean
*/
- @Experimental(eta = "2023-03-31")
public List getCheckConstraints()
{
return checkConstraints;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/RelationColumnsMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/connector/RelationColumnsMetadata.java
index da73a5bc177e..e1f68b0d05a3 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/RelationColumnsMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/RelationColumnsMetadata.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
-
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
@@ -22,7 +20,6 @@
import static io.trino.spi.connector.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2024-01-01")
public record RelationColumnsMetadata(
SchemaTableName name,
Optional> materializedViewColumns,
diff --git a/core/trino-spi/src/main/java/io/trino/spi/connector/RelationCommentMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/connector/RelationCommentMetadata.java
index 0c2e0e1fe15e..2ae98ed1db48 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/connector/RelationCommentMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/connector/RelationCommentMetadata.java
@@ -13,14 +13,11 @@
*/
package io.trino.spi.connector;
-import io.trino.spi.Experimental;
-
import java.util.Optional;
import static io.trino.spi.connector.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2024-01-01")
public record RelationCommentMetadata(
SchemaTableName name,
boolean tableRedirected,
diff --git a/core/trino-spi/src/main/java/io/trino/spi/exchange/Exchange.java b/core/trino-spi/src/main/java/io/trino/spi/exchange/Exchange.java
index 911aa8daf0c2..aade2d0fc93f 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/exchange/Exchange.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/exchange/Exchange.java
@@ -14,13 +14,11 @@
package io.trino.spi.exchange;
import com.google.errorprone.annotations.ThreadSafe;
-import io.trino.spi.Experimental;
import java.io.Closeable;
import java.util.concurrent.CompletableFuture;
@ThreadSafe
-@Experimental(eta = "2024-03-01")
public interface Exchange
extends Closeable
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/AggregationFunctionMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/function/AggregationFunctionMetadata.java
index 7ba7230f21ba..0377fd1219e1 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/AggregationFunctionMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/AggregationFunctionMetadata.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import io.trino.spi.type.TypeSignature;
@@ -23,7 +22,6 @@
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class AggregationFunctionMetadata
{
private final boolean orderSensitive;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/AggregationImplementation.java b/core/trino-spi/src/main/java/io/trino/spi/function/AggregationImplementation.java
index 2541bd7b0ef2..8876a74cba12 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/AggregationImplementation.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/AggregationImplementation.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
-
import java.lang.invoke.MethodHandle;
import java.util.ArrayList;
import java.util.List;
@@ -22,7 +20,6 @@
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class AggregationImplementation
{
private final MethodHandle inputFunction;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/BoundSignature.java b/core/trino-spi/src/main/java/io/trino/spi/function/BoundSignature.java
index 85287d185217..d304a5c515bf 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/BoundSignature.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/BoundSignature.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import java.util.List;
@@ -25,7 +24,6 @@
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toUnmodifiableList;
-@Experimental(eta = "2022-10-31")
public class BoundSignature
{
private final CatalogSchemaFunctionName name;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencies.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencies.java
index 8a27710349d0..3e097fa5f897 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencies.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencies.java
@@ -13,13 +13,11 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import io.trino.spi.type.TypeSignature;
import java.util.List;
-@Experimental(eta = "2022-10-31")
public interface FunctionDependencies
{
Type getType(TypeSignature typeSignature);
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencyDeclaration.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencyDeclaration.java
index 110c6a5b2e95..2b37e004236e 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencyDeclaration.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionDependencyDeclaration.java
@@ -16,7 +16,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import io.trino.spi.type.TypeSignature;
@@ -29,7 +28,6 @@
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class FunctionDependencyDeclaration
{
public static final FunctionDependencyDeclaration NO_DEPENDENCIES = builder().build();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionId.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionId.java
index f688c7c74698..0baa84fbcf0f 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionId.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionId.java
@@ -15,13 +15,11 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
-import io.trino.spi.Experimental;
import java.util.Locale;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class FunctionId
{
private final String id;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionMetadata.java
index cba2948c906c..06eae1ca287e 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionMetadata.java
@@ -16,7 +16,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import java.util.ArrayList;
import java.util.Collections;
@@ -30,7 +29,6 @@
import static io.trino.spi.function.FunctionKind.WINDOW;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class FunctionMetadata
{
// Copied from OperatorNameUtil
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionNullability.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionNullability.java
index bc7757938fa9..551ee88a7f5c 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionNullability.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionNullability.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import java.util.List;
import java.util.Objects;
@@ -23,7 +22,6 @@
import static java.util.Objects.requireNonNull;
import static java.util.stream.Collectors.joining;
-@Experimental(eta = "2022-10-31")
public class FunctionNullability
{
private final boolean returnNullable;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionProvider.java b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionProvider.java
index 72af7e1860c6..3299639d3fa6 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/FunctionProvider.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/FunctionProvider.java
@@ -13,12 +13,10 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
import io.trino.spi.function.table.ConnectorTableFunctionHandle;
import io.trino.spi.function.table.TableFunctionProcessorProvider;
import io.trino.spi.function.table.TableFunctionProcessorProviderFactory;
-@Experimental(eta = "2023-03-31")
public interface FunctionProvider
{
default ScalarFunctionImplementation getScalarFunctionImplementation(
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/LongVariableConstraint.java b/core/trino-spi/src/main/java/io/trino/spi/function/LongVariableConstraint.java
index 3cd9dc973029..6d48b98b7910 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/LongVariableConstraint.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/LongVariableConstraint.java
@@ -16,13 +16,11 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import java.util.Objects;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class LongVariableConstraint
{
private final String name;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/ScalarFunctionImplementation.java b/core/trino-spi/src/main/java/io/trino/spi/function/ScalarFunctionImplementation.java
index f08b52308b1d..125af6947c40 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/ScalarFunctionImplementation.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/ScalarFunctionImplementation.java
@@ -13,15 +13,12 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
-
import java.lang.invoke.MethodHandle;
import java.util.List;
import java.util.Optional;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class ScalarFunctionImplementation
{
private final MethodHandle methodHandle;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/SchemaFunctionName.java b/core/trino-spi/src/main/java/io/trino/spi/function/SchemaFunctionName.java
index c8c922b83a5b..eca7041cb956 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/SchemaFunctionName.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/SchemaFunctionName.java
@@ -15,13 +15,11 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import java.util.Objects;
import static java.util.Locale.ROOT;
-@Experimental(eta = "2022-10-31")
public final class SchemaFunctionName
{
private final String schemaName;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/Signature.java b/core/trino-spi/src/main/java/io/trino/spi/function/Signature.java
index 99815ffd787b..31950cbec3e7 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/Signature.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/Signature.java
@@ -16,7 +16,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import io.trino.spi.type.TypeSignature;
@@ -29,7 +28,6 @@
import static java.util.stream.Collectors.joining;
import static java.util.stream.Stream.concat;
-@Experimental(eta = "2022-10-31")
public class Signature
{
private final List typeVariableConstraints;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/TypeVariableConstraint.java b/core/trino-spi/src/main/java/io/trino/spi/function/TypeVariableConstraint.java
index 69c36df6ae0d..5de2691b3acc 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/TypeVariableConstraint.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/TypeVariableConstraint.java
@@ -16,7 +16,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import io.trino.spi.type.TypeSignature;
@@ -28,7 +27,6 @@
import static java.util.Objects.requireNonNull;
import static java.util.stream.Collectors.joining;
-@Experimental(eta = "2022-10-31")
public class TypeVariableConstraint
{
private final String name;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/WindowFunctionSupplier.java b/core/trino-spi/src/main/java/io/trino/spi/function/WindowFunctionSupplier.java
index 6f327588fc94..50cad2dbe200 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/WindowFunctionSupplier.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/WindowFunctionSupplier.java
@@ -13,12 +13,9 @@
*/
package io.trino.spi.function;
-import io.trino.spi.Experimental;
-
import java.util.List;
import java.util.function.Supplier;
-@Experimental(eta = "2022-10-31")
public interface WindowFunctionSupplier
{
WindowFunction createWindowFunction(boolean ignoreNulls, List> lambdaProviders);
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/AbstractConnectorTableFunction.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/AbstractConnectorTableFunction.java
index ce73eb1b8f09..161239aeffd2 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/AbstractConnectorTableFunction.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/AbstractConnectorTableFunction.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import io.trino.spi.connector.ConnectorAccessControl;
import io.trino.spi.connector.ConnectorSession;
import io.trino.spi.connector.ConnectorTransactionHandle;
@@ -23,7 +22,6 @@
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public abstract class AbstractConnectorTableFunction
implements ConnectorTableFunction
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/Argument.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/Argument.java
index 006a358f0c8e..8c5eb2337af2 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/Argument.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/Argument.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import io.trino.spi.Experimental;
import io.trino.spi.expression.ConnectorExpression;
/**
@@ -33,7 +32,6 @@
@JsonSubTypes.Type(value = ScalarArgument.class, name = "scalar"),
@JsonSubTypes.Type(value = TableArgument.class, name = "table"),
})
-@Experimental(eta = "2022-10-31")
public abstract class Argument
{
}
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ArgumentSpecification.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ArgumentSpecification.java
index ff8fa9583b5c..3a02bfa47963 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ArgumentSpecification.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ArgumentSpecification.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import jakarta.annotation.Nullable;
import static io.trino.spi.function.table.Preconditions.checkArgument;
@@ -29,7 +28,6 @@
*
* Default values are allowed for all arguments except Table arguments.
*/
-@Experimental(eta = "2022-10-31")
public abstract class ArgumentSpecification
{
private final String name;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunction.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunction.java
index b7f7788e70a6..94e8e78508dc 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunction.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunction.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import io.trino.spi.connector.ConnectorAccessControl;
import io.trino.spi.connector.ConnectorSession;
import io.trino.spi.connector.ConnectorTransactionHandle;
@@ -21,7 +20,6 @@
import java.util.List;
import java.util.Map;
-@Experimental(eta = "2022-10-31")
public interface ConnectorTableFunction
{
String getSchema();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunctionHandle.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunctionHandle.java
index 8514e215af7c..2dc4a42c9bdd 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunctionHandle.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ConnectorTableFunctionHandle.java
@@ -13,12 +13,9 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
/**
* An area to store all information necessary to execute the table function, gathered at analysis time
*/
-@Experimental(eta = "2022-10-31")
public interface ConnectorTableFunctionHandle
{
}
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/Descriptor.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/Descriptor.java
index 7281e287e149..8bfcb9a978ff 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/Descriptor.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/Descriptor.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import java.util.ArrayList;
@@ -28,7 +27,6 @@
import static io.trino.spi.function.table.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class Descriptor
{
private final List fields;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgument.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgument.java
index 5cd3b0ac7963..e69e82c5194a 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgument.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgument.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import io.trino.spi.expression.ConnectorExpression;
import java.util.Objects;
@@ -30,7 +29,6 @@
* This representation should be considered experimental. Eventually, {@link ConnectorExpression}
* should be extended to include this kind of argument.
*/
-@Experimental(eta = "2022-10-31")
public class DescriptorArgument
extends Argument
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgumentSpecification.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgumentSpecification.java
index 89f722b837d7..b3c121d2ef73 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgumentSpecification.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/DescriptorArgumentSpecification.java
@@ -13,11 +13,8 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import static io.trino.spi.function.table.Preconditions.checkArgument;
-@Experimental(eta = "2022-10-31")
public class DescriptorArgumentSpecification
extends ArgumentSpecification
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/NameAndPosition.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/NameAndPosition.java
index 22eb163db822..15d23826bbd2 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/NameAndPosition.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/NameAndPosition.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import java.util.Objects;
import static io.trino.spi.function.table.Preconditions.checkArgument;
@@ -29,7 +27,6 @@
* The Table Function is supposed to refer to input data using `NameAndPosition`,
* and the engine should provide the requested column.
*/
-@Experimental(eta = "2022-10-31")
public class NameAndPosition
{
private final String name;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ReturnTypeSpecification.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ReturnTypeSpecification.java
index d15a911de49b..839d56c80ebe 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ReturnTypeSpecification.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ReturnTypeSpecification.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import static io.trino.spi.function.table.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
@@ -23,7 +21,6 @@
* These are the columns produced by the table function as opposed to the columns
* of input relations passed through by the table function.
*/
-@Experimental(eta = "2022-10-31")
public abstract class ReturnTypeSpecification
{
/**
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgument.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgument.java
index 44ca552508a5..c8930b6146ac 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgument.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgument.java
@@ -16,7 +16,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import io.trino.spi.expression.ConnectorExpression;
import io.trino.spi.predicate.NullableValue;
import io.trino.spi.type.Type;
@@ -33,7 +32,6 @@
* Additionally, only constant values are currently supported. In the future,
* we will add support for different kinds of expressions.
*/
-@Experimental(eta = "2022-10-31")
public class ScalarArgument
extends Argument
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgumentSpecification.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgumentSpecification.java
index bf9f85cb7fae..ce35170640cd 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgumentSpecification.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/ScalarArgumentSpecification.java
@@ -13,14 +13,12 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import io.trino.spi.type.Type;
import static io.trino.spi.function.table.Preconditions.checkArgument;
import static java.lang.String.format;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class ScalarArgumentSpecification
extends ArgumentSpecification
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgument.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgument.java
index f81d8e7cc4b6..cad7bdb91bbe 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgument.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgument.java
@@ -15,7 +15,6 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import io.trino.spi.Experimental;
import io.trino.spi.expression.ConnectorExpression;
import io.trino.spi.type.RowType;
@@ -29,7 +28,6 @@
* This representation should be considered experimental. Eventually, {@link ConnectorExpression}
* should be extended to include this kind of argument.
*/
-@Experimental(eta = "2022-10-31")
public class TableArgument
extends Argument
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgumentSpecification.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgumentSpecification.java
index 2c29e5ee9c9c..80c245bd2062 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgumentSpecification.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableArgumentSpecification.java
@@ -13,12 +13,9 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import static io.trino.spi.function.table.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2022-10-31")
public class TableArgumentSpecification
extends ArgumentSpecification
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionAnalysis.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionAnalysis.java
index fcc1c5e72dcd..431e4956bd00 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionAnalysis.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionAnalysis.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -39,7 +37,6 @@
* gathered at analysis time. Typically, these are the values of the constant arguments, and results
* of pre-processing arguments.
*/
-@Experimental(eta = "2022-10-31")
public final class TableFunctionAnalysis
{
private final Optional returnedType;
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorProvider.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorProvider.java
index d0d70448ead0..a806b46eadaa 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorProvider.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorProvider.java
@@ -13,11 +13,9 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import io.trino.spi.connector.ConnectorSession;
import io.trino.spi.connector.ConnectorSplit;
-@Experimental(eta = "2023-07-31")
public interface TableFunctionProcessorProvider
{
/**
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorState.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorState.java
index 8b235210e57d..da1414aa51fe 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorState.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionProcessorState.java
@@ -13,7 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
import io.trino.spi.Page;
import jakarta.annotation.Nullable;
@@ -33,7 +32,6 @@
* Note: when the input is empty, the only valid index value is null, because there are no input rows that could be attached to output. In such case, for performance
* reasons, the validation of indexes is skipped, and all pass-through columns are filled with nulls.
*/
-@Experimental(eta = "2023-07-31")
public sealed interface TableFunctionProcessorState
permits TableFunctionProcessorState.Blocked, TableFunctionProcessorState.Finished, TableFunctionProcessorState.Processed
{
diff --git a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionSplitProcessor.java b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionSplitProcessor.java
index bc7e6bf7572c..ab8257152d2f 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionSplitProcessor.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/function/table/TableFunctionSplitProcessor.java
@@ -13,8 +13,6 @@
*/
package io.trino.spi.function.table;
-import io.trino.spi.Experimental;
-
import java.io.IOException;
/**
@@ -24,7 +22,6 @@
* Thread-safety: implementations do not have to be thread-safe. The {@link #process} method may be called from
* multiple threads, but will never be called from two threads at the same time.
*/
-@Experimental(eta = "2023-07-31")
public interface TableFunctionSplitProcessor
{
/**
diff --git a/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledLocation.java b/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledLocation.java
index 4f56619bee55..853a31e1502f 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledLocation.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledLocation.java
@@ -14,7 +14,6 @@
package io.trino.spi.spool;
import io.airlift.slice.Slice;
-import io.trino.spi.Experimental;
import java.net.URI;
import java.util.List;
@@ -22,7 +21,6 @@
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2025-05-31")
public sealed interface SpooledLocation
{
Map> headers();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledSegmentHandle.java b/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledSegmentHandle.java
index f59132c19e08..752c82c249bf 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledSegmentHandle.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/spool/SpooledSegmentHandle.java
@@ -13,14 +13,11 @@
*/
package io.trino.spi.spool;
-import io.trino.spi.Experimental;
-
import java.time.Instant;
/**
* SpooledSegmentHandle is used to uniquely identify a spooled segment and to manage its lifecycle.
*/
-@Experimental(eta = "2025-05-31")
public interface SpooledSegmentHandle
{
String identifier();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingContext.java b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingContext.java
index 3e9646e76c3a..9b4ee58e4474 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingContext.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingContext.java
@@ -13,12 +13,10 @@
*/
package io.trino.spi.spool;
-import io.trino.spi.Experimental;
import io.trino.spi.QueryId;
import static java.util.Objects.requireNonNull;
-@Experimental(eta = "2025-05-31")
public record SpoolingContext(String encoding, QueryId queryId, long rows, long size)
{
public SpoolingContext
diff --git a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerContext.java b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerContext.java
index 3c545671c8b7..715891db469d 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerContext.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerContext.java
@@ -15,9 +15,7 @@
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
-import io.trino.spi.Experimental;
-@Experimental(eta = "2025-05-31")
public interface SpoolingManagerContext
{
default OpenTelemetry getOpenTelemetry()
diff --git a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerFactory.java b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerFactory.java
index 5d74c043c4a4..dacfa36dfca3 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerFactory.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/spool/SpoolingManagerFactory.java
@@ -13,11 +13,8 @@
*/
package io.trino.spi.spool;
-import io.trino.spi.Experimental;
-
import java.util.Map;
-@Experimental(eta = "2025-05-31")
public interface SpoolingManagerFactory
{
String getName();
diff --git a/core/trino-spi/src/main/java/io/trino/spi/statistics/ColumnStatisticMetadata.java b/core/trino-spi/src/main/java/io/trino/spi/statistics/ColumnStatisticMetadata.java
index ac5ab127b7dd..dd7a387ad238 100644
--- a/core/trino-spi/src/main/java/io/trino/spi/statistics/ColumnStatisticMetadata.java
+++ b/core/trino-spi/src/main/java/io/trino/spi/statistics/ColumnStatisticMetadata.java
@@ -17,7 +17,6 @@
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.errorprone.annotations.DoNotCall;
-import io.trino.spi.Experimental;
import io.trino.spi.expression.FunctionName;
import java.util.Objects;
@@ -48,7 +47,6 @@ public ColumnStatisticMetadata(
this(columnName, connectorAggregationId, Optional.of(statisticType), Optional.empty());
}
- @Experimental(eta = "2023-01-31")
public ColumnStatisticMetadata(
String columnName,
String connectorAggregationId,
@@ -89,7 +87,6 @@ public String getColumnName()
return columnName;
}
- @Experimental(eta = "2023-01-31")
@JsonProperty
public String getConnectorAggregationId()
{
@@ -102,21 +99,18 @@ public ColumnStatisticType getStatisticType()
return statisticType.orElseThrow();
}
- @Experimental(eta = "2023-01-31")
@JsonProperty("statisticType")
public Optional getStatisticTypeIfPresent()
{
return statisticType;
}
- @Experimental(eta = "2023-01-31")
@JsonIgnore
public FunctionName getAggregation()
{
return aggregation.orElseThrow();
}
- @Experimental(eta = "2023-01-31")
@JsonProperty("aggregation")
public Optional getAggregationIfPresent()
{