From 1942d1ae6ae0f5188906640326a69bef64f3affa Mon Sep 17 00:00:00 2001 From: Arnaud Lacurie Date: Mon, 25 May 2026 21:49:36 +0100 Subject: [PATCH 1/2] Move temporary function defaults into AbstractMetadataOperationsFactory --- .../catalog/TransactionBoundDatabase.java | 17 ----------------- .../ddl/AbstractMetadataOperationsFactory.java | 4 ++-- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/catalog/TransactionBoundDatabase.java b/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/catalog/TransactionBoundDatabase.java index ac15179363..527ba31c2b 100644 --- a/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/catalog/TransactionBoundDatabase.java +++ b/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/catalog/TransactionBoundDatabase.java @@ -27,20 +27,15 @@ import com.apple.foundationdb.relational.api.RelationalConnection; import com.apple.foundationdb.relational.api.Transaction; import com.apple.foundationdb.relational.api.TransactionManager; -import com.apple.foundationdb.relational.api.ddl.ConstantAction; import com.apple.foundationdb.relational.api.ddl.MetadataOperationsFactory; import com.apple.foundationdb.relational.api.ddl.NoOpQueryFactory; import com.apple.foundationdb.relational.api.exceptions.ErrorCode; import com.apple.foundationdb.relational.api.exceptions.RelationalException; -import com.apple.foundationdb.relational.api.metadata.SchemaTemplate; import com.apple.foundationdb.relational.recordlayer.AbstractDatabase; import com.apple.foundationdb.relational.recordlayer.EmbeddedRelationalConnection; import com.apple.foundationdb.relational.recordlayer.HollowTransactionManager; import com.apple.foundationdb.relational.recordlayer.RecordStoreAndRecordContextTransaction; import com.apple.foundationdb.relational.recordlayer.ddl.AbstractMetadataOperationsFactory; -import com.apple.foundationdb.relational.recordlayer.ddl.CreateTemporaryFunctionConstantAction; -import com.apple.foundationdb.relational.recordlayer.ddl.DropTemporaryFunctionConstantAction; -import com.apple.foundationdb.relational.recordlayer.metadata.RecordLayerInvokedRoutine; import com.apple.foundationdb.relational.recordlayer.query.cache.RelationalPlanCache; import com.apple.foundationdb.relational.recordlayer.storage.BackingRecordStore; import com.apple.foundationdb.relational.recordlayer.storage.BackingStore; @@ -69,18 +64,6 @@ public class TransactionBoundDatabase extends AbstractDatabase { URI uri; private static final MetadataOperationsFactory onlyTemporaryFunctionOperationsFactory = new AbstractMetadataOperationsFactory() { - @Nonnull - @Override - public ConstantAction getCreateTemporaryFunctionConstantAction(@Nonnull final SchemaTemplate template, final boolean throwIfExists, - @Nonnull final RecordLayerInvokedRoutine invokedRoutine) { - return new CreateTemporaryFunctionConstantAction(template, throwIfExists, invokedRoutine); - } - - @Nonnull - @Override - public ConstantAction getDropTemporaryFunctionConstantAction(final boolean throwIfNotExists, @Nonnull final String temporaryFunctionName) { - return new DropTemporaryFunctionConstantAction(throwIfNotExists, temporaryFunctionName); - } }; public TransactionBoundDatabase(@Nonnull URI uri, @Nonnull Options options, @Nullable RelationalPlanCache planCache, diff --git a/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/ddl/AbstractMetadataOperationsFactory.java b/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/ddl/AbstractMetadataOperationsFactory.java index aad538d9d7..347c18d82a 100644 --- a/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/ddl/AbstractMetadataOperationsFactory.java +++ b/fdb-relational-core/src/main/java/com/apple/foundationdb/relational/recordlayer/ddl/AbstractMetadataOperationsFactory.java @@ -73,13 +73,13 @@ public ConstantAction getDropSchemaTemplateConstantAction(@Nonnull String templa @Override public ConstantAction getCreateTemporaryFunctionConstantAction(@Nonnull final SchemaTemplate template, boolean throwIfExists, @Nonnull final RecordLayerInvokedRoutine invokedRoutine) { - return NoOpMetadataOperationsFactory.INSTANCE.getCreateTemporaryFunctionConstantAction(template, throwIfExists, invokedRoutine); + return new CreateTemporaryFunctionConstantAction(template, throwIfExists, invokedRoutine); } @Nonnull @Override public ConstantAction getDropTemporaryFunctionConstantAction(boolean throwIfNotExists, @Nonnull final String temporaryFunctionName) { - return NoOpMetadataOperationsFactory.INSTANCE.getDropTemporaryFunctionConstantAction(throwIfNotExists, temporaryFunctionName); + return new DropTemporaryFunctionConstantAction(throwIfNotExists, temporaryFunctionName); } } From 0871fde54fe767752f54e6e825a03e2b61bf2c17 Mon Sep 17 00:00:00 2001 From: Arnaud Lacurie Date: Tue, 26 May 2026 08:14:42 +0100 Subject: [PATCH 2/2] Fix MetadataOperationsFactoryTests for temporary function actions --- .../recordlayer/ddl/MetadataOperationsFactoryTests.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/ddl/MetadataOperationsFactoryTests.java b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/ddl/MetadataOperationsFactoryTests.java index 152e71a7a6..5f951e3353 100644 --- a/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/ddl/MetadataOperationsFactoryTests.java +++ b/fdb-relational-core/src/test/java/com/apple/foundationdb/relational/recordlayer/ddl/MetadataOperationsFactoryTests.java @@ -56,12 +56,10 @@ static Stream operationFactoryMethods() { final var mockedSchemaTemplate = Mockito.mock(SchemaTemplate.class); return Stream.of( Arguments.of((Function)factory -> factory.getCreateSchemaConstantAction(dummyURI, dummyString, dummyString, Options.NONE)), - Arguments.of((Function)factory -> factory.getCreateTemporaryFunctionConstantAction(mockedSchemaTemplate, dummyBoolean, Mockito.mock(RecordLayerInvokedRoutine.class))), Arguments.of((Function)factory -> factory.getCreateDatabaseConstantAction(dummyURI, Options.NONE)), Arguments.of((Function)factory -> factory.getSaveSchemaTemplateConstantAction(mockedSchemaTemplate, Options.NONE)), Arguments.of((Function)factory -> factory.getDropSchemaConstantAction(dummyURI, dummyString, Options.NONE)), Arguments.of((Function)factory -> factory.getDropSchemaTemplateConstantAction(dummyString, dummyBoolean, Options.NONE)), - Arguments.of((Function)factory -> factory.getDropTemporaryFunctionConstantAction(dummyBoolean, dummyString)), Arguments.of((Function)factory -> factory.getDropDatabaseConstantAction(dummyURI, dummyBoolean, Options.NONE)) ); }