diff --git a/legend-engine-config/legend-engine-repl/legend-engine-repl-relational/pom.xml b/legend-engine-config/legend-engine-repl/legend-engine-repl-relational/pom.xml
index 61b135b5fb7..93e34632c3d 100644
--- a/legend-engine-config/legend-engine-repl/legend-engine-repl-relational/pom.xml
+++ b/legend-engine-config/legend-engine-repl/legend-engine-repl-relational/pom.xml
@@ -157,19 +157,6 @@
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution
- runtime
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-grammar
- runtime
-
-
-
org.finos.legend.engine
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/pom.xml
index e8b241fa370..e1b01337dc0 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/pom.xml
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/pom.xml
@@ -102,10 +102,13 @@
org.eclipse.collections
eclipse-collections-api
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-protocol
+ org.finos.legend.pure
+ legend-pure-m2-functions-base-pure
+
+
+ org.finos.legend.pure
+ legend-pure-m2-functions-relation-pure
@@ -123,14 +126,17 @@
- org.finos.legend.pure
- legend-pure-m2-functions-base-pure
+ org.duckdb
+ duckdb_jdbc
+ runtime
+
- org.finos.legend.pure
- legend-pure-m2-functions-relation-pure
+ com.fasterxml.jackson.core
+ jackson-databind
+
org.finos.legend.engine
legend-engine-pure-functions-relationalStore-PCT-pure
@@ -144,18 +150,6 @@
runtime
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-grammar
- runtime
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution
- runtime
-
-
-
junit
@@ -216,11 +210,6 @@
legend-engine-pure-runtime-java-extension-compiled-functions-pureExtensions
test
-
- org.finos.legend.engine
- legend-engine-pure-runtime-java-extension-compiled-functions-pureExtensions
- test
-
org.finos.legend.engine
legend-engine-xt-relationalStore-pure
@@ -231,10 +220,7 @@
legend-engine-xt-relationalStore-executionPlan
test
-
- com.fasterxml.jackson.core
- jackson-databind
-
+
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BaseFunctions_PCT.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BaseFunctions_PCT.java
index ebcb7821e5c..46a0d02aea8 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BaseFunctions_PCT.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BaseFunctions_PCT.java
@@ -21,7 +21,6 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType;
import org.finos.legend.engine.pure.runtime.testConnection.CoreExternalTestConnectionCodeRepositoryProvider;
import org.finos.legend.engine.test.shared.framework.TestServerResource;
-import org.finos.legend.pure.code.core.CoreRelationalduckdbCodeRepositoryProvider;
import org.finos.legend.pure.code.core.FunctionsCodeRepositoryProvider;
import org.finos.legend.pure.m3.pct.reports.config.PCTReportConfiguration;
import org.finos.legend.pure.m3.pct.reports.config.exclusion.ExclusionSpecification;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BasicFunctions_PCT.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BasicFunctions_PCT.java
index 225d654ae9a..c60767874ca 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BasicFunctions_PCT.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_BasicFunctions_PCT.java
@@ -21,7 +21,6 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType;
import org.finos.legend.engine.pure.runtime.testConnection.CoreExternalTestConnectionCodeRepositoryProvider;
import org.finos.legend.engine.test.shared.framework.TestServerResource;
-import org.finos.legend.pure.code.core.CoreRelationalduckdbCodeRepositoryProvider;
import org.finos.legend.pure.m3.PlatformCodeRepositoryProvider;
import org.finos.legend.pure.m3.pct.reports.config.PCTReportConfiguration;
import org.finos.legend.pure.m3.pct.reports.config.exclusion.ExclusionSpecification;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_GrammarFunctions_PCT.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_GrammarFunctions_PCT.java
index c79c9a5d200..3349ab0f65e 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_GrammarFunctions_PCT.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_GrammarFunctions_PCT.java
@@ -21,7 +21,6 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType;
import org.finos.legend.engine.pure.runtime.testConnection.CoreExternalTestConnectionCodeRepositoryProvider;
import org.finos.legend.engine.test.shared.framework.TestServerResource;
-import org.finos.legend.pure.code.core.CoreRelationalduckdbCodeRepositoryProvider;
import org.finos.legend.pure.m3.PlatformCodeRepositoryProvider;
import org.finos.legend.pure.m3.pct.reports.config.PCTReportConfiguration;
import org.finos.legend.pure.m3.pct.reports.config.exclusion.ExclusionSpecification;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_RelationFunctions_PCT.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_RelationFunctions_PCT.java
index 064f3881e6c..3b8bdf15a1a 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_RelationFunctions_PCT.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-PCT/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/duckdb/pct/Test_Relational_DuckDB_RelationFunctions_PCT.java
@@ -21,7 +21,6 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType;
import org.finos.legend.engine.pure.runtime.testConnection.CoreExternalTestConnectionCodeRepositoryProvider;
import org.finos.legend.engine.test.shared.framework.TestServerResource;
-import org.finos.legend.pure.code.core.CoreRelationalduckdbCodeRepositoryProvider;
import org.finos.legend.pure.code.core.RelationCodeRepositoryProvider;
import org.finos.legend.pure.m3.pct.reports.config.PCTReportConfiguration;
import org.finos.legend.pure.m3.pct.reports.config.exclusion.ExclusionSpecification;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/pom.xml
deleted file mode 100644
index 18bc6c45c15..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/pom.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb
- 4.47.4-SNAPSHOT
-
- 4.0.0
-
- legend-engine-xt-relationalStore-duckdb-execution
- jar
- Legend Engine - XT - Relational Store - DuckDB - Execution
-
-
-
- org.duckdb
- duckdb_jdbc
- runtime
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-protocol
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-protocol
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-executionPlan
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-executionPlan-connection
-
-
-
-
- org.eclipse.collections
- eclipse-collections-api
-
-
- org.eclipse.collections
- eclipse-collections
-
-
-
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/DuckDBConnectionExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/DuckDBConnectionExtension.java
deleted file mode 100644
index 779235cb076..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/DuckDBConnectionExtension.java
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.engine.plan.execution.stores.relational;
-
-import org.eclipse.collections.api.block.function.Function2;
-import org.eclipse.collections.api.factory.Lists;
-import org.eclipse.collections.api.list.MutableList;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionKey;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.OAuthProfile;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.keys.AuthenticationStrategyKey;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommands;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.duckdb.DuckDBCommands;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.duckdb.DuckDBManager;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecification;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecificationKey;
-import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.strategic.StrategicConnectionExtension;
-import org.finos.legend.engine.plan.execution.stores.relational.ds.specifications.DuckDBDataSourceSpecification;
-import org.finos.legend.engine.plan.execution.stores.relational.ds.specifications.keys.DuckDBDataSourceSpecificationKey;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategyVisitor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecificationVisitor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
-
-import java.util.List;
-import java.util.function.Function;
-
-public class DuckDBConnectionExtension implements RelationalConnectionExtension, StrategicConnectionExtension
-{
-
- @Override
- public String type()
- {
- return "MIX_ConnectionExtension_&_Strategic_Connection_Extension";
- }
-
- @Override
- public MutableList group()
- {
- return org.eclipse.collections.impl.factory.Lists.mutable.with("Store", "Relational", "DuckDB");
- }
-
- @Override
- public MutableList getAdditionalDatabaseManager()
- {
- return Lists.mutable.of(new DuckDBManager());
- }
-
- @Override
- public Boolean visit(StreamResultToTempTableVisitor visitor, RelationalDatabaseCommands databaseCommands)
- {
- if (databaseCommands instanceof DuckDBCommands)
- {
- throw new UnsupportedOperationException("not yet implemented");
- }
- return null;
- }
-
- @Override
- public AuthenticationStrategyVisitor getExtraAuthenticationKeyGenerators()
- {
- return authenticationStrategy -> null;
- }
-
- @Override
- public AuthenticationStrategyVisitor getExtraAuthenticationStrategyTransformGenerators(List oauthProfiles)
- {
- return authenticationStrategy -> null;
- }
-
- @Override
- public Function> getExtraDataSourceSpecificationKeyGenerators(int testDbPort)
- {
- return connection -> datasourceSpecification ->
- {
- if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
- {
- DuckDBDatasourceSpecification databricksSpecification = (DuckDBDatasourceSpecification) datasourceSpecification;
- return new DuckDBDataSourceSpecificationKey(
- databricksSpecification.path
- );
- }
- return null;
- };
- }
-
- @Override
- public Function2> getExtraDataSourceSpecificationTransformerGenerators(Function authenticationStrategyProvider)
- {
- return (connection, connectionKey) -> datasourceSpecification ->
- {
- if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
- {
- return new DuckDBDataSourceSpecification(
- (DuckDBDataSourceSpecificationKey) connectionKey.getDataSourceSpecificationKey(),
- new DuckDBManager(),
- authenticationStrategyProvider.apply(connection)
- );
- }
- return null;
- };
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.RelationalConnectionExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.RelationalConnectionExtension
deleted file mode 100644
index b2023e1a38a..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.RelationalConnectionExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.plan.execution.stores.relational.DuckDBConnectionExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionExtension
deleted file mode 100644
index b2023e1a38a..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.plan.execution.stores.relational.DuckDBConnectionExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.manager.strategic.StrategicConnectionExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.manager.strategic.StrategicConnectionExtension
deleted file mode 100644
index b2023e1a38a..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/resources/META-INF/services/org.finos.legend.engine.plan.execution.stores.relational.connection.manager.strategic.StrategicConnectionExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.plan.execution.stores.relational.DuckDBConnectionExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/pom.xml
deleted file mode 100644
index 95c9c3195d7..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/pom.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb
- 4.47.4-SNAPSHOT
-
- 4.0.0
-
- legend-engine-xt-relationalStore-duckdb-grammar
- jar
- Legend Engine - XT - Relational Store - DuckDB - Grammar
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- copy-antlr-core-grammar
- initialize
-
- unpack
-
-
-
-
- org.finos.legend.engine
- legend-engine-language-pure-grammar
- jar
- false
- ${project.build.directory}
- antlr/*.g4
-
-
-
-
-
-
-
- org.antlr
- antlr4-maven-plugin
- ${antlr.version}
-
-
-
- antlr4
-
-
- true
- true
- true
- target/antlr
- ${project.build.directory}/generated-sources
-
-
-
-
-
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-pure
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-protocol
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-pure
-
-
- org.finos.legend.engine
- legend-engine-language-pure-grammar
-
-
- org.finos.legend.engine
- legend-engine-language-pure-compiler
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-protocol
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-grammar
-
-
-
-
-
- org.antlr
- antlr4-runtime
- compile
-
-
-
-
-
- org.eclipse.collections
- eclipse-collections-api
-
-
- org.eclipse.collections
- eclipse-collections
-
-
-
-
-
- junit
- junit
- test
-
-
- org.finos.legend.engine
- legend-engine-language-pure-grammar
- test-jar
- test
-
-
- org.finos.legend.engine
- legend-engine-language-pure-compiler
- test-jar
- test
-
-
-
-
-
- com.googlecode.json-simple
- json-simple
- 1.1.1
- test
-
-
- org.finos.legend.pure
- legend-pure-runtime-java-extension-compiled-functions-json
- test
-
-
-
-
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBLexerGrammar.g4 b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBLexerGrammar.g4
deleted file mode 100644
index e72f0dd755e..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBLexerGrammar.g4
+++ /dev/null
@@ -1,7 +0,0 @@
-lexer grammar DuckDBLexerGrammar;
-
-import CoreLexerGrammar;
-
-DUCKDB: 'DuckDB';
-PATH: 'path';
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBParserGrammar.g4 b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBParserGrammar.g4
deleted file mode 100644
index 1e7740f79a4..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/DuckDBParserGrammar.g4
+++ /dev/null
@@ -1,22 +0,0 @@
-parser grammar DuckDBParserGrammar;
-
-import CoreParserGrammar;
-
-options
-{
- tokenVocab = DuckDBLexerGrammar;
-}
-
-identifier: VALID_STRING
-;
-
-duckDBDatasourceSpecification: DUCKDB
- BRACE_OPEN
- (
- path
- )*
- BRACE_CLOSE
-;
-
-path: PATH COLON STRING SEMI_COLON
-;
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DuckDBCompilerExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DuckDBCompilerExtension.java
deleted file mode 100644
index 04bcacab954..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DuckDBCompilerExtension.java
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.engine.language.pure.compiler.toPureGraph;
-
-import org.eclipse.collections.api.block.function.Function2;
-import org.eclipse.collections.api.factory.Lists;
-import org.eclipse.collections.api.list.MutableList;
-import org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
-import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_AuthenticationStrategy;
-import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DatasourceSpecification;
-import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification;
-import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification_Impl;
-
-import java.util.List;
-
-public class DuckDBCompilerExtension implements IRelationalCompilerExtension
-{
- @Override
- public MutableList group()
- {
- return org.eclipse.collections.impl.factory.Lists.mutable.with("Store", "Relational", "DuckDB");
- }
-
- @Override
- public List> getExtraAuthenticationStrategyProcessors()
- {
- return Lists.mutable.with((authenticationStrategy, context) -> null);
- }
-
- @Override
- public List> getExtraDataSourceSpecificationProcessors()
- {
- return Lists.mutable.with((datasourceSpecification, context) ->
- {
- if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
- {
- DuckDBDatasourceSpecification staticDatasourceSpecification = (DuckDBDatasourceSpecification) datasourceSpecification;
- Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification _static = new Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification_Impl("", null, context.pureModel.getClass("meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification"));
- _static._path(staticDatasourceSpecification.path);
- return _static;
- }
- return null;
- });
- }
-
- @Override
- public CompilerExtension build()
- {
- return new DuckDBCompilerExtension();
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/DuckDBGrammarParserExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/DuckDBGrammarParserExtension.java
deleted file mode 100644
index ae7fd3b0917..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/DuckDBGrammarParserExtension.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.engine.language.pure.grammar.from;
-
-import org.eclipse.collections.api.list.MutableList;
-import org.finos.legend.engine.language.pure.grammar.from.antlr4.connection.DuckDBParserGrammar;
-import org.finos.legend.engine.language.pure.grammar.from.authentication.AuthenticationStrategySourceCode;
-import org.finos.legend.engine.language.pure.grammar.from.datasource.DataSourceSpecificationSourceCode;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
-import org.finos.legend.engine.language.pure.grammar.from.antlr4.connection.DuckDBLexerGrammar;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.function.Function;
-
-public class DuckDBGrammarParserExtension implements IRelationalGrammarParserExtension
-{
- @Override
- public MutableList group()
- {
- return org.eclipse.collections.impl.factory.Lists.mutable.with("Store", "Relational", "DuckDB");
- }
-
- @Override
- public List> getExtraAuthenticationStrategyParsers()
- {
- return Collections.singletonList(code -> null);
- }
-
- @Override
- public List> getExtraDataSourceSpecificationParsers()
- {
- return Collections.singletonList(code ->
- {
- if ("DuckDB".equals(code.getType()))
- {
- return IRelationalGrammarParserExtension.parse(code, DuckDBLexerGrammar::new, DuckDBParserGrammar::new,
- p -> visitDuckDBDatasourceSpecification(code, p.duckDBDatasourceSpecification()));
- }
- return null;
- });
- }
-
- public DuckDBDatasourceSpecification visitDuckDBDatasourceSpecification(DataSourceSpecificationSourceCode code, DuckDBParserGrammar.DuckDBDatasourceSpecificationContext dbSpecCtx)
- {
- DuckDBDatasourceSpecification dsSpec = new DuckDBDatasourceSpecification();
- dsSpec.sourceInformation = code.getSourceInformation();
-
- DuckDBParserGrammar.PathContext pathCtx = PureGrammarParserUtility.validateAndExtractOptionalField(dbSpecCtx.path(), "path", dsSpec.sourceInformation);
- dsSpec.path = pathCtx != null ? PureGrammarParserUtility.fromGrammarString(pathCtx.STRING().getText(), true) : null;
-
- return dsSpec;
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/DuckDBGrammarComposerExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/DuckDBGrammarComposerExtension.java
deleted file mode 100644
index e801a1a744d..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/DuckDBGrammarComposerExtension.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.engine.language.pure.grammar.to;
-
-import org.eclipse.collections.api.block.function.Function2;
-import org.eclipse.collections.api.list.MutableList;
-import org.eclipse.collections.impl.factory.Lists;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
-
-import java.util.List;
-
-import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.convertString;
-import static org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerUtility.getTabString;
-
-public class DuckDBGrammarComposerExtension implements IRelationalGrammarComposerExtension
-{
- @Override
- public MutableList group()
- {
- return org.eclipse.collections.impl.factory.Lists.mutable.with("Store", "Relational", "DuckDB");
- }
-
- @Override
- public List> getExtraAuthenticationStrategyComposers()
- {
- return Lists.mutable.with((_strategy, context) -> null);
- }
-
- @Override
- public List> getExtraDataSourceSpecificationComposers()
- {
- return Lists.mutable.with((_spec, context) ->
- {
- if (_spec instanceof DuckDBDatasourceSpecification)
- {
- DuckDBDatasourceSpecification spec = (DuckDBDatasourceSpecification) _spec;
- int baseIndentation = 1;
- return "DuckDB\n" +
- context.getIndentationString() + getTabString(baseIndentation) + "{\n" +
- context.getIndentationString() + getTabString(baseIndentation + 1) + "path: " + convertString(spec.path, true) + ";\n" +
- context.getIndentationString() + getTabString(baseIndentation) + "}";
- }
- return null;
- });
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension
deleted file mode 100644
index 48b4697e39d..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.language.pure.compiler.toPureGraph.DuckDBCompilerExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.IRelationalGrammarParserExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.IRelationalGrammarParserExtension
deleted file mode 100644
index 63af63d9fff..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.IRelationalGrammarParserExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.language.pure.grammar.from.DuckDBGrammarParserExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension
deleted file mode 100644
index b5058d860f2..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.language.pure.grammar.to.DuckDBGrammarComposerExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestDuckDBConnectionGrammarRoundtrip.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestDuckDBConnectionGrammarRoundtrip.java
deleted file mode 100644
index 4228c6d66b1..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestDuckDBConnectionGrammarRoundtrip.java
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2021 Goldman Sachs
-//
-// 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 org.finos.legend.engine.language.pure.grammar.test;
-
-import org.junit.Test;
-
-public class TestDuckDBConnectionGrammarRoundtrip extends TestGrammarRoundtrip.TestGrammarRoundtripTestSuite
-{
- @Test
- public void testDeltaLakeDatabaseConnection()
- {
- test("###Connection\n" +
- "RelationalDatabaseConnection simple::DuckDBConnection\n" +
- "{\n" +
- " store: apps::pure::studio::relational::tests::dbInc;\n" +
- " type: DuckDB;\n" +
- " specification: DuckDB\n" +
- " {\n" +
- " path: '/test';\n" +
- " };\n" +
- " auth: Test;\n" +
- "}\n");
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/pom.xml
deleted file mode 100644
index bd0f3f14d41..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb
- 4.47.4-SNAPSHOT
-
- 4.0.0
-
- legend-engine-xt-relationalStore-duckdb-protocol
- jar
- Legend Engine - XT - Relational Store - DuckDB - Protocol
-
-
-
-
- org.finos.legend.engine
- legend-engine-protocol-pure
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-protocol
-
-
-
-
-
- org.eclipse.collections
- eclipse-collections-api
-
-
- org.eclipse.collections
- eclipse-collections
-
-
-
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/DuckDBProtocolExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/DuckDBProtocolExtension.java
deleted file mode 100644
index 0888b0830a6..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/DuckDBProtocolExtension.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.engine.protocol.pure.v1;
-
-import org.eclipse.collections.api.block.function.Function0;
-import org.eclipse.collections.api.list.MutableList;
-import org.eclipse.collections.impl.factory.Lists;
-import org.finos.legend.engine.protocol.pure.v1.extension.ProtocolSubTypeInfo;
-import org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
-
-import java.util.List;
-
-public class DuckDBProtocolExtension implements PureProtocolExtension
-{
- @Override
- public MutableList group()
- {
- return org.eclipse.collections.impl.factory.Lists.mutable.with("Store", "Relational", "DuckDB");
- }
-
- @Override
- public List>>> getExtraProtocolSubTypeInfoCollectors()
- {
- return Lists.fixedSize.with(() -> Lists.fixedSize.with(
- //DatasourceSpecification
- ProtocolSubTypeInfo.newBuilder(DatasourceSpecification.class)
- .withSubtype(DuckDBDatasourceSpecification.class, "duckDB")
- .build()
- ));
- }
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension
deleted file mode 100644
index 1cba4486581..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.engine.protocol.pure.v1.DuckDBProtocolExtension
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/pom.xml
deleted file mode 100644
index 035d87fd7e3..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/pom.xml
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb
- 4.47.4-SNAPSHOT
-
- 4.0.0
-
- legend-engine-xt-relationalStore-duckdb-pure
- jar
- Legend Engine - XT - Relational Store - DuckDB - Pure
-
-
-
-
- org.finos.legend.pure
- legend-pure-maven-generation-par
-
- ${project.basedir}/src/main/resources
- ${legend.pure.version}
-
- platform
- core
- core_relational
- core_relational_duckdb
-
-
- ${project.basedir}/src/main/resources/core_relational_duckdb.definition.json
-
-
-
-
- generate-sources
-
- build-pure-jar
-
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-pure-code-compiled-core
- ${project.version}
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-pure
- ${project.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-store-relational-grammar
- ${legend.pure.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-dsl-diagram-grammar
- ${legend.pure.version}
-
-
-
-
- org.finos.legend.pure
- legend-pure-maven-generation-java
-
-
- compile
-
- build-pure-compiled-jar
-
-
- true
- true
- modular
- true
-
- core_relational_duckdb
-
-
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-pure-code-compiled-core
- ${project.version}
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-pure
- ${project.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-dsl-graph-grammar
- ${legend.pure.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-dsl-mapping-grammar
- ${legend.pure.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-dsl-diagram-grammar
- ${legend.pure.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-dsl-path-grammar
- ${legend.pure.version}
-
-
- org.finos.legend.pure
- legend-pure-m2-store-relational-grammar
- ${legend.pure.version}
-
-
-
-
-
-
-
-
- org.finos.legend.pure
- legend-pure-m4
-
-
- org.finos.legend.pure
- legend-pure-m3-core
-
-
- org.finos.legend.pure
- legend-pure-runtime-java-engine-compiled
-
-
-
- org.finos.legend.engine
- legend-engine-pure-code-compiled-core
-
-
- org.finos.legend.engine
- legend-engine-pure-code-compiled-functions
-
-
- org.finos.legend.engine
- legend-engine-pure-platform-functions-java
-
-
- org.finos.legend.engine
- legend-engine-pure-platform-java
-
-
- org.finos.legend.pure
- legend-pure-m2-store-relational-pure
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-pure
-
-
-
-
- org.eclipse.collections
- eclipse-collections
-
-
- org.eclipse.collections
- eclipse-collections-api
-
-
-
-
-
- junit
- junit
-
-
- org.finos.legend.pure
- legend-pure-m2-functions-json-pure
- test
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- test
-
-
- com.fasterxml.jackson.core
- jackson-databind
- test
-
-
- com.fasterxml.jackson.core
- jackson-core
- test
-
-
-
-
-
-
- org.finos.legend.engine
- legend-engine-pure-ide-light-pure
- test
-
-
- org.finos.legend.pure
- legend-pure-runtime-java-engine-interpreted
- ${legend.pure.version}
- test
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-grammar
- test
-
-
-
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/java/org/finos/legend/pure/code/core/CoreRelationalduckdbCodeRepositoryProvider.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/java/org/finos/legend/pure/code/core/CoreRelationalduckdbCodeRepositoryProvider.java
deleted file mode 100644
index 425fbbdf9bf..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/java/org/finos/legend/pure/code/core/CoreRelationalduckdbCodeRepositoryProvider.java
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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 org.finos.legend.pure.code.core;
-
-import org.finos.legend.pure.m3.pct.reports.model.Adapter;
-import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepository;
-import org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider;
-import org.finos.legend.pure.m3.serialization.filesystem.repository.GenericCodeRepository;
-
-public class CoreRelationalduckdbCodeRepositoryProvider implements CodeRepositoryProvider
-{
- @Override
- public CodeRepository repository()
- {
- return GenericCodeRepository.build("core_relational_duckdb.definition.json");
- }
-}
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider
deleted file mode 100644
index a2796594cd5..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider
+++ /dev/null
@@ -1 +0,0 @@
-org.finos.legend.pure.code.core.CoreRelationalduckdbCodeRepositoryProvider
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb.definition.json
deleted file mode 100644
index d0785828946..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb.definition.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "core_relational_duckdb",
- "pattern": "(meta::relational::functions::sqlQueryToString::duckDB|meta::relational::tests::sqlQueryToString::duckDB|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure|meta::relational::tests::connEquality)(::.*)?",
- "dependencies": [
- "platform",
- "platform_functions",
- "platform_store_relational",
- "core",
- "core_functions",
- "core_relational"
- ]
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/connectionEqualityTest.pure
deleted file mode 100644
index f30a7b1e236..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/connectionEqualityTest.pure
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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.
-
-import meta::relational::metamodel::execute::tests::*;
-import meta::external::store::relational::runtime::*;
-import meta::relational::translation::*;
-import meta::pure::extension::*;
-import meta::relational::extension::*;
-import meta::relational::runtime::*;
-import meta::relational::tests::csv::*;
-import meta::relational::metamodel::execute::*;
-import meta::relational::metamodel::*;
-import meta::pure::mapping::*;
-
-
-function <> meta::relational::tests::connEquality::testConnectionEqualityAllSameDuckDB() : Boolean[1]
-{
- let c1 = ^RelationalDatabaseConnection(
-
- type = DatabaseType.DuckDB,
- datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(path='/tst'),
- authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy()
- );
-
- let c2 = ^RelationalDatabaseConnection(
-
- type = DatabaseType.DuckDB,
- datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(path='/tst'),
- authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy()
- );
-
- assert(runRelationalRouterExtensionConnectionEquality($c1, $c2));
-
-}
-
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/metamodel.pure
deleted file mode 100644
index 2640fbe40bd..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/connection/metamodel.pure
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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.
-
-Class meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification
-{
- <> path:String[0..1];
-}
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/extension_duckdb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/extension_duckdb.pure
deleted file mode 100644
index af4d80fb9c8..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/extension_duckdb.pure
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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.
-
-function <>
-meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::duckDBSerializerExtension(): meta::protocols::pure::vX_X_X::extension::RelationalModuleSerializerExtension[1]
-{
- ^meta::protocols::pure::vX_X_X::extension::RelationalModuleSerializerExtension(
- module = 'duckDB',
- transfers_connection_transformDatasourceSpecification = [
- d:meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification[1] |
- ^meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification(
- _type = 'duckDB',
- path = $d.path
- )
- ],
- reverse_transfers_typeLookups = [
- pair('duckDB', 'DuckDBDatasourceSpecification')
- ],
- reverse_transfers_connection_transformDatasourceSpecification = [
- d:meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification[1] |
- ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(
- // _type = 'duckDB',
- path = $d.path
- )
- ]
- )
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/metamodel_connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/metamodel_connection.pure
deleted file mode 100644
index 06860eff7bc..00000000000
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/protocols/pure/vX_X_X/extension/metamodel_connection.pure
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2024 Goldman Sachs
-//
-// 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.
-
-Class meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification extends meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification
-{
- path:String[0..1];
-}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/pom.xml
index f95785674d4..2f0f9d3eafc 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/pom.xml
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/pom.xml
@@ -1,4 +1,19 @@
+
org.finos.legend.engine
@@ -8,50 +23,10 @@
4.0.0
legend-engine-xt-relationalStore-duckdb
- Legend Engine - XT - Relational Store - DB Extension - DuckDB
-
pom
+ Legend Engine - XT - Relational Store - DB Extension - DuckDB
- legend-engine-xt-relationalStore-duckdb-execution
legend-engine-xt-relationalStore-duckdb-PCT
- legend-engine-xt-relationalStore-duckdb-grammar
- legend-engine-xt-relationalStore-duckdb-protocol
- legend-engine-xt-relationalStore-duckdb-pure
-
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution
- ${project.version}
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution-tests
- ${project.version}
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-grammar
- ${project.version}
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-protocol
- ${project.version}
-
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-pure
- ${project.version}
-
-
-
-
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/pom.xml
index b2a8742af50..fb43d2c1e26 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/pom.xml
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/pom.xml
@@ -204,6 +204,11 @@
com.h2database
h2
+
+ org.duckdb
+ duckdb_jdbc
+ runtime
+
com.databricks
databricks-jdbc
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/DatabaseManager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/DatabaseManager.java
index 4541400ecbc..79367b8ce24 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/DatabaseManager.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/DatabaseManager.java
@@ -21,6 +21,7 @@
import org.finos.legend.engine.plan.execution.stores.relational.connection.ConnectionExtension;
import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommands;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.duckdb.DuckDBManager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.h2.H2Manager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecification;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
@@ -47,7 +48,7 @@ private static void initialize()
LOGGER.info("DatabaseManager starting initialization");
long start = System.currentTimeMillis();
register(new H2Manager());
-
+ register(new DuckDBManager());
MutableList extensions = Iterate.addAllTo(ServiceLoader.load(ConnectionExtension.class), Lists.mutable.empty());
extensions.flatCollect(ConnectionExtension::getAdditionalDatabaseManager).forEach(DatabaseManager::register);
dbManagerReady.getAndSet(true);
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBCommands.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBCommands.java
similarity index 100%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBCommands.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBCommands.java
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBDriver.java
similarity index 100%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBDriver.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBDriver.java
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java
similarity index 97%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java
index e89017109ed..32b0ff71620 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/duckdb/DuckDBManager.java
@@ -21,7 +21,7 @@
import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommands;
-import org.finos.legend.engine.plan.execution.stores.relational.ds.specifications.DuckDBDataSourceSpecification;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.DuckDBDataSourceSpecification;
public class DuckDBManager extends DatabaseManager
{
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/DuckDBDataSourceSpecification.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/DuckDBDataSourceSpecification.java
similarity index 94%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/DuckDBDataSourceSpecification.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/DuckDBDataSourceSpecification.java
index 2be621a679e..26264cd0b92 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/DuckDBDataSourceSpecification.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/DuckDBDataSourceSpecification.java
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.finos.legend.engine.plan.execution.stores.relational.ds.specifications;
+package org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications;
import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecification;
-import org.finos.legend.engine.plan.execution.stores.relational.ds.specifications.keys.DuckDBDataSourceSpecificationKey;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.DuckDBDataSourceSpecificationKey;
import java.util.Properties;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java
similarity index 98%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java
index db10b6fdd3e..44943937357 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/specifications/keys/DuckDBDataSourceSpecificationKey.java
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.finos.legend.engine.plan.execution.stores.relational.ds.specifications.keys;
+package org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecificationKey;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/pom.xml
index bbca248c93e..35098377417 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/pom.xml
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/pom.xml
@@ -183,6 +183,12 @@
+
+ org.duckdb
+ duckdb_jdbc
+ runtime
+
+
io.opentracing
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/StreamResultToTempTableVisitor.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/StreamResultToTempTableVisitor.java
index 2b60b233dd5..05528763714 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/StreamResultToTempTableVisitor.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/StreamResultToTempTableVisitor.java
@@ -29,6 +29,7 @@
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.IngestionMethod;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommands;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.RelationalDatabaseCommandsVisitor;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.duckdb.DuckDBCommands;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.h2.H2Commands;
import org.finos.legend.engine.plan.execution.stores.relational.result.RealizedRelationalResult;
import org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult;
@@ -81,6 +82,10 @@ public Boolean visit(RelationalDatabaseCommands databaseCommands)
{
return visitH2((H2Commands) databaseCommands);
}
+ else if (databaseCommands instanceof DuckDBCommands)
+ {
+ throw new UnsupportedOperationException("not yet implemented");
+ }
for (RelationalConnectionExtension extension: ServiceLoader.load(RelationalConnectionExtension.class))
{
Boolean result = extension.visit(this, databaseCommands);
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationKeyGenerator.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationKeyGenerator.java
index bb90807647c..5ee8def3210 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationKeyGenerator.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationKeyGenerator.java
@@ -15,15 +15,12 @@
package org.finos.legend.engine.plan.execution.stores.relational.connection.manager.strategic;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecificationKey;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.DuckDBDataSourceSpecificationKey;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.EmbeddedH2DataSourceSpecificationKey;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.LocalH2DataSourceSpecificationKey;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.StaticDataSourceSpecificationKey;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecificationVisitor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.*;
import java.io.File;
@@ -68,6 +65,13 @@ else if (datasourceSpecification instanceof StaticDatasourceSpecification)
staticDatasourceSpecification.port,
staticDatasourceSpecification.databaseName);
}
+ else if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
+ {
+ DuckDBDatasourceSpecification databricksSpecification = (DuckDBDatasourceSpecification) datasourceSpecification;
+ return new DuckDBDataSourceSpecificationKey(
+ databricksSpecification.path
+ );
+ }
return null;
}
}
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationTransformer.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationTransformer.java
index 381f847a7a4..2142d3b00d1 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationTransformer.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/manager/strategic/DataSourceSpecificationTransformer.java
@@ -17,18 +17,17 @@
import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.AuthenticationStrategy;
import org.finos.legend.engine.plan.execution.stores.relational.connection.authentication.strategy.TestDatabaseAuthenticationStrategy;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.DatabaseManager;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.duckdb.DuckDBManager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.h2.H2Manager;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecification;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.DataSourceSpecificationKey;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.DuckDBDataSourceSpecification;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.LocalH2DataSourceSpecification;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.StaticDataSourceSpecification;
+import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.DuckDBDataSourceSpecificationKey;
import org.finos.legend.engine.plan.execution.stores.relational.connection.ds.specifications.keys.StaticDataSourceSpecificationKey;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecificationVisitor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.*;
public class DataSourceSpecificationTransformer implements DatasourceSpecificationVisitor
{
@@ -79,6 +78,15 @@ else if (datasourceSpecification instanceof StaticDatasourceSpecification)
authenticationStrategy
);
}
+ else if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
+ {
+ return new DuckDBDataSourceSpecification(
+ (DuckDBDataSourceSpecificationKey) key,
+ new DuckDBManager(),
+ this.authenticationStrategy
+
+ );
+ }
return null;
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationLexerGrammar.g4 b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationLexerGrammar.g4
index e9858f01e07..6bd82e83522 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationLexerGrammar.g4
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationLexerGrammar.g4
@@ -17,3 +17,6 @@ BRACKET_CLOSE: ']';
REGION: 'region';
+DUCKDB: 'DuckDB';
+PATH: 'path';
+
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationParserGrammar.g4 b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationParserGrammar.g4
index 2b449062c5c..17f93ef0681 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationParserGrammar.g4
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/connection/datasource/DataSourceSpecificationParserGrammar.g4
@@ -12,6 +12,17 @@ identifier: VALID_STRING
// ----------------------------- RELATIONAL DATABASE CONNECTION DATASOURCE SPEC -----------------------------
+duckDBDatasourceSpecification: DUCKDB
+ BRACE_OPEN
+ (
+ path
+ )*
+ BRACE_CLOSE
+;
+
+path: PATH COLON STRING SEMI_COLON
+;
+
localH2DatasourceSpecification: LOCAL_H2_DSP
BRACE_OPEN
(
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DatasourceSpecificationBuilder.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DatasourceSpecificationBuilder.java
index 03b61badc28..c421aecef78 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DatasourceSpecificationBuilder.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/DatasourceSpecificationBuilder.java
@@ -15,11 +15,7 @@
package org.finos.legend.engine.language.pure.compiler.toPureGraph;
import org.eclipse.collections.impl.list.mutable.FastList;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecificationVisitor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.*;
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DatasourceSpecification;
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_EmbeddedH2DatasourceSpecification;
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_EmbeddedH2DatasourceSpecification_Impl;
@@ -27,6 +23,8 @@
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_LocalH2DatasourceSpecification_Impl;
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_StaticDatasourceSpecification;
import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_StaticDatasourceSpecification_Impl;
+import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification;
+import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification_Impl;
public class DatasourceSpecificationBuilder implements DatasourceSpecificationVisitor
@@ -67,6 +65,13 @@ else if (datasourceSpecification instanceof StaticDatasourceSpecification)
_static._databaseName(staticDatasourceSpecification.databaseName);
return _static;
}
+ else if (datasourceSpecification instanceof DuckDBDatasourceSpecification)
+ {
+ DuckDBDatasourceSpecification staticDatasourceSpecification = (DuckDBDatasourceSpecification) datasourceSpecification;
+ Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification _static = new Root_meta_pure_alloy_connections_alloy_specification_DuckDBDatasourceSpecification_Impl("", null, context.pureModel.getClass("meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification"));
+ _static._path(staticDatasourceSpecification.path);
+ return _static;
+ }
return null;
}
}
\ No newline at end of file
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalGrammarParserExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalGrammarParserExtension.java
index 57702704309..69413afee33 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalGrammarParserExtension.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/RelationalGrammarParserExtension.java
@@ -202,6 +202,8 @@ public List walker.visitStaticDatasourceSpecification(code, p.staticDatasourceSpecification()));
case "EmbeddedH2":
return parseDataSourceSpecification(code, p -> walker.visitEmbeddedH2DatasourceSpecification(code, p.embeddedH2DatasourceSpecification()));
+ case "DuckDB":
+ return parseDataSourceSpecification(code, p -> walker.visitDuckDBDatasourceSpecification(code, p.duckDBDatasourceSpecification()));
default:
return null;
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/datasource/DataSourceSpecificationParseTreeWalker.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/datasource/DataSourceSpecificationParseTreeWalker.java
index ee4e121a278..3bcc4b25175 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/datasource/DataSourceSpecificationParseTreeWalker.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/datasource/DataSourceSpecificationParseTreeWalker.java
@@ -17,6 +17,7 @@
import org.eclipse.collections.impl.utility.ListIterate;
import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParserUtility;
import org.finos.legend.engine.language.pure.grammar.from.antlr4.connection.datasource.DataSourceSpecificationParserGrammar;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DuckDBDatasourceSpecification;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
@@ -73,4 +74,15 @@ public StaticDatasourceSpecification visitStaticDatasourceSpecification(DataSour
dsSpec.databaseName = PureGrammarParserUtility.fromGrammarString(nameCtx.STRING().getText(), true);
return dsSpec;
}
+
+ public DuckDBDatasourceSpecification visitDuckDBDatasourceSpecification(DataSourceSpecificationSourceCode code, DataSourceSpecificationParserGrammar.DuckDBDatasourceSpecificationContext dbSpecCtx)
+ {
+ DuckDBDatasourceSpecification dsSpec = new DuckDBDatasourceSpecification();
+ dsSpec.sourceInformation = code.getSourceInformation();
+
+ DataSourceSpecificationParserGrammar.PathContext pathCtx = PureGrammarParserUtility.validateAndExtractOptionalField(dbSpecCtx.path(), "path", dsSpec.sourceInformation);
+ dsSpec.path = pathCtx != null ? PureGrammarParserUtility.fromGrammarString(pathCtx.STRING().getText(), true) : null;
+
+ return dsSpec;
+ }
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRelationalGrammarComposer.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRelationalGrammarComposer.java
index b8a9745a3c7..edd6f96f9a1 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRelationalGrammarComposer.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRelationalGrammarComposer.java
@@ -30,10 +30,7 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.MapperPostProcessor;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.SchemaNameMapper;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.TableNameMapper;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.*;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.mapping.EmbeddedRelationalPropertyMapping;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.mapping.FilterMapping;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.mapping.InlineEmbeddedPropertyMapping;
@@ -669,6 +666,15 @@ else if (_spec instanceof StaticDatasourceSpecification)
context.getIndentationString() + getTabString(baseIndentation + 1) + "port: " + spec.port + ";\n" +
context.getIndentationString() + getTabString(baseIndentation) + "}";
}
+ else if (_spec instanceof DuckDBDatasourceSpecification)
+ {
+ DuckDBDatasourceSpecification spec = (DuckDBDatasourceSpecification) _spec;
+ int baseIndentation = 1;
+ return "DuckDB\n" +
+ context.getIndentationString() + getTabString(baseIndentation) + "{\n" +
+ context.getIndentationString() + getTabString(baseIndentation + 1) + "path: " + convertString(spec.path, true) + ";\n" +
+ context.getIndentationString() + getTabString(baseIndentation) + "}";
+ }
return null;
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarRoundtrip.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarRoundtrip.java
index 869d979c9ed..5b10725939e 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarRoundtrip.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalConnectionGrammarRoundtrip.java
@@ -249,4 +249,19 @@ public void testRelationalDatabaseConnectionWithQuoteIdentifiers()
" auth: DefaultH2;\n" +
"}\n");
}
+
+ public void testDuckDBDatabaseConnection()
+ {
+ test("###Connection\n" +
+ "RelationalDatabaseConnection simple::DuckDBConnection\n" +
+ "{\n" +
+ " store: apps::pure::studio::relational::tests::dbInc;\n" +
+ " type: DuckDB;\n" +
+ " specification: DuckDB\n" +
+ " {\n" +
+ " path: '/test';\n" +
+ " };\n" +
+ " auth: Test;\n" +
+ "}\n");
+ }
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/RelationalProtocolExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/RelationalProtocolExtension.java
index a2df782add0..5fb013a819b 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/RelationalProtocolExtension.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/RelationalProtocolExtension.java
@@ -60,10 +60,7 @@
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.MapperPostProcessor;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.PostProcessor;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.postprocessor.RelationalMapperPostProcessor;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.EmbeddedH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification;
-import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.StaticDatasourceSpecification;
+import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.*;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.data.RelationalCSVData;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.mapping.EmbeddedRelationalPropertyMapping;
import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.mapping.InlineEmbeddedPropertyMapping;
@@ -168,6 +165,7 @@ public List>>> getExtraProtocolSubTypeInfo
.withSubtype(LocalH2DatasourceSpecification.class, "h2Local")
.withSubtype(StaticDatasourceSpecification.class, "static")
.withSubtype(EmbeddedH2DatasourceSpecification.class, "h2Embedded")
+ .withSubtype(DuckDBDatasourceSpecification.class, "duckDB")
.build(),
// AuthenticationStrategy
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/specification/DuckDBDatasourceSpecification.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/specification/DuckDBDatasourceSpecification.java
similarity index 100%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/specification/DuckDBDatasourceSpecification.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/store/relational/connection/specification/DuckDBDatasourceSpecification.java
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/invocations/execution_relational_testConnection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/invocations/execution_relational_testConnection.pure
index 009607d477c..cd7f1e69d82 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/invocations/execution_relational_testConnection.pure
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/invocations/execution_relational_testConnection.pure
@@ -68,7 +68,8 @@ function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection:
pair('static', 'StaticDatasourceSpecification'),
pair('h2Embedded', 'EmbeddedH2DatasourceSpecification'),
- pair('h2Local', 'LocalH2DatasourceSpecification(')
+ pair('h2Local', 'LocalH2DatasourceSpecification('),
+ pair('duckDB', 'DuckDBDatasourceSpecification')
])
)
);
@@ -166,7 +167,12 @@ function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection:
// _type = 'h2Local',
testDataSetupCsv = $l.testDataSetupCsv,
testDataSetupSqls = $l.testDataSetupSqls
- )
+ ),
+ d:meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification[1] |
+ ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(
+ // _type = 'duckDB',
+ path = $d.path
+ )
])->toOneMany());
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/models/metamodel_connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/models/metamodel_connection.pure
index 2cf66190f14..0a48f0ee020 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/models/metamodel_connection.pure
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/models/metamodel_connection.pure
@@ -84,6 +84,11 @@ Class meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::a
databaseName: String[1];
}
+Class meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification extends meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification
+{
+ path:String[0..1];
+}
+
Class meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::TestDatabaseConnection extends meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection
{
testDataSetupCsv : String[0..1];
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/transfers/connection_relational.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/transfers/connection_relational.pure
index 62c87728701..c82b483c60d 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/transfers/connection_relational.pure
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/vX_X_X/transfers/connection_relational.pure
@@ -187,7 +187,12 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio
_type = 'h2Local',
testDataSetupCsv = $l.testDataSetupCsv,
testDataSetupSqls = $l.testDataSetupSqls
- )
+ ),
+ d:meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification[1] |
+ ^meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::DuckDBDatasourceSpecification(
+ _type = 'duckDB',
+ path = $d.path
+ )
])->toOneMany())
}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/datasourceSpecification.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/datasourceSpecification.pure
index 0eec4ed5d67..11ce443590b 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/datasourceSpecification.pure
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/datasourceSpecification.pure
@@ -36,3 +36,8 @@ Class meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpe
<> testDataSetupCsv:String[0..1];
<> testDataSetupSqls:String[*];
}
+
+Class meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification
+{
+ <> path:String[0..1];
+}
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/sqlQueryToString/duckdbExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/duckDB/duckdbExtension.pure
similarity index 100%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/sqlQueryToString/duckdbExtension.pure
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/duckDB/duckdbExtension.pure
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/sqlQueryToString/duckdbTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/duckDB/duckdbTestSuiteInvoker.pure
similarity index 100%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/main/resources/core_relational_duckdb/relational/sqlQueryToString/duckdbTestSuiteInvoker.pure
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/duckDB/duckdbTestSuiteInvoker.pure
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/testRelationalExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/testRelationalExtension.pure
index 6eb303906aa..2b8be3a8055 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/testRelationalExtension.pure
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/testRelationalExtension.pure
@@ -129,6 +129,26 @@ function <> meta::relational::metamodel::execute::tests::testConnecti
}
+function <> meta::relational::tests::connEquality::testConnectionEqualityAllSameDuckDB() : Boolean[1]
+{
+ let c1 = ^RelationalDatabaseConnection(
+
+ type = DatabaseType.DuckDB,
+ datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(path='/tst'),
+ authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy()
+ );
+
+ let c2 = ^RelationalDatabaseConnection(
+
+ type = DatabaseType.DuckDB,
+ datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DuckDBDatasourceSpecification(path='/tst'),
+ authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy()
+ );
+
+ assert(runRelationalRouterExtensionConnectionEquality($c1, $c2));
+
+}
+
function <> meta::relational::metamodel::execute::tests::testExecuteInDbToTDS() : Boolean[1]
{
let result = meta::relational::metamodel::execute::executeInDbToTDS('select 1 as "Count"', {|createTestDatabaseConnection()});
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/Test_Pure_Relational_ConnectionEquality.java
similarity index 96%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/Test_Pure_Relational_ConnectionEquality.java
index c072278365f..82660fcbe0b 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/Test_Pure_Relational_ConnectionEquality.java
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.finos.legend.pure.code.core;
+package org.finos.legend.pure.code.core.relational;
import junit.framework.TestSuite;
import org.finos.legend.pure.m3.execution.test.PureTestBuilder;
diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_DbSpecific_duckdb.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/dbSpecific/Test_Pure_Relational_DbSpecific_duckdb.java
similarity index 96%
rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_DbSpecific_duckdb.java
rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/dbSpecific/Test_Pure_Relational_DbSpecific_duckdb.java
index e74820fd66c..5abddf6953c 100644
--- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-duckdb/legend-engine-xt-relationalStore-duckdb-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_DbSpecific_duckdb.java
+++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/test/java/org/finos/legend/pure/code/core/relational/dbSpecific/Test_Pure_Relational_DbSpecific_duckdb.java
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.finos.legend.pure.code.core;
+package org.finos.legend.pure.code.core.relational.dbSpecific;
import junit.framework.TestSuite;
import org.finos.legend.pure.m3.execution.test.PureTestBuilder;
diff --git a/pom.xml b/pom.xml
index d888f7cbd81..e35c8f77888 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1190,27 +1190,6 @@
${project.version}
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-protocol
- ${project.version}
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-grammar
- ${project.version}
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution
- ${project.version}
-
-
- org.finos.legend.engine
- legend-engine-xt-relationalStore-duckdb-execution-tests
- ${project.version}
-
-
org.finos.legend.engine
legend-engine-xt-relationalStore-spanner-execution